CAPEC-40: Manipulating Writeable Terminal Devices

This attack exploits terminal devices that allow themselves to be written to by other users. The attacker sends command strings to the target terminal device hoping that the target user will hit enter and thereby execute the malicious command with their privileges. The attacker can send the results (such as copying /etc/passwd) to a known directory and collect once the attack has succeeded.

Examples

Any system that allows other peers to write directly to its terminal process is vulnerable to this type of attack. If the terminals are available through being over-privileged (i.e. world-writable) or the attacker is an administrator, then a series of commands in this format can be used to echo commands out to victim terminals. $echo -e 033[30m033132 > /dev/ttyXX where XX is the tty number of the user under attack. This will paste the characters to another terminal (tty). Note this technique works only if the victim's tty is world writable (which it may not be). That is one reason why programs like write(1) and talk(1) in UNIX systems need to run setuid. [REF-1] If the victim continues to hit enter and execute the commands, there are an endless supply of vectors available to the attacker, copying files, open up network connections, ftp out to servers, and so on.

Very High
Severity
2
occurrences in scenarios
Frequency
2
Affected Components
2
Affected Scenarios

Requirements and Mitigations

Requirements

Component properties that must be true for this threat to apply:

Mitigations

Component properties that mitigate this threat:

Affected Components

Component Description Boundary
Cosign Binary (build machines) Cosign binary running on the build machine FPF-operated Tailnet
LibreOffice Converts documents to PDFs gVisor sandbox

Affected Scenarios

convert — affects: LibreOffice
release_sandbox — affects: Cosign Binary (build machines)

Back to Summary