Step 1: User Interaction: A local user executes the splitvt command, potentially with specially crafted arguments or environment variables.
Step 2: Input Processing: The splitvt command receives the user-supplied input, which is then processed and copied into internal buffers.
Step 3: Buffer Overflow: Due to a lack of input validation, the program copies the user-provided input into a fixed-size buffer without checking its length. If the input exceeds the buffer's capacity, a buffer overflow occurs.
Step 4: Memory Corruption: The overflow overwrites adjacent memory regions, potentially including critical program data like function pointers or control variables.
Step 5: Code Execution: By carefully crafting the input, the attacker overwrites a function pointer with the address of malicious code (e.g., shellcode) or redirects program execution to a controlled memory location.
Step 6: Privilege Escalation: The malicious code is executed with the privileges of the splitvt process, which typically runs with root privileges, granting the attacker root access to the system.