Researchers have detailed a novel hardware vulnerability, termed INTERRUPT INJECTION, which allows an unprivileged Linux application to circumvent defenses designed to protect against Spectre v2 attacks on both Intel and AMD processors.
The Mechanics of Interrupt Injection
The core of the attack involves timing a hardware interrupt to occur during a critical window—specifically, the gap between when the processor sanitizes its branch predictor and when the kernel utilizes that predictor. By injecting the interrupt, an attacker can effectively “re-poison” the branch predictor even after the security mitigation has run, compromising the system’s integrity.
Daniël Trujillo and Mengjia Yan, researchers from MIT CSAIL, demonstrated the exploit’s effectiveness on an AMD Zen 2 system running Linux 6.14, even with all default Spectre v2 safeguards enabled. During testing, the exploit successfully leaked arbitrary kernel memory at a rate of 5.47 bytes per second, achieving a 91.97% accuracy rate. This level of success was sufficient to locate and read the system’s password hashes, stored in the `/etc/shadow` file, in five out of ten attempts.
The vulnerability requires only local code execution and no elevated privileges, making shared computing environments utilizing affected processors particularly susceptible.
Patches and Industry Responses
The vulnerability was initially disclosed to AMD and Intel on February 5. In response, AMD issued bulletin AMD-SB-7061 on August 6, titled “Safe RET Interrupt Vulnerability.” The bulletin stated that an attacker running code on affected systems could inject an interrupt at a precise moment to disrupt the Safe RET mechanism, which could potentially weaken the protection and lead to information disclosure.
AMD identified Zen 1 through Zen 4 processors as being impacted. The issue, according to AMD, appears to be linked specifically to the Linux implementation of the Safe RET mitigation. While the research was demonstrated on Zen 1 and Zen 2, the vulnerability was suggested for Zen 3 and Zen 4, though not demonstrated. The paper noted that AMD’s own testing covered Zen 2 and Zen 4.
A fix has been implemented in the Linux kernel. The patch, titled “x86/bugs: Make Safe-RET robust against interrupt injection,” was committed on June 2. It was authored by Borislav Petkov and co-developed with David Kaplan, both AMD engineers. The commit description explains that interrupting the Safe-RET sequence can neutralize its protective function, potentially resulting in data leakage through speculative execution.
The patch addresses the issue by adjusting the register state as if the Safe-RET sequence had completed successfully, while also preventing the execution of a `RET` instruction immediately following an interrupt return.
Vendor Statements and Technical Analysis
When checking the system’s status for Safe-RET stack overflow vulnerabilities in the kernel, the documentation did not reference interrupts as a concern. Furthermore, neither AMD’s bulletin nor MIT’s initial announcement pointed to the specific kernel commit, leaving system administrators needing to verify the fix by checking the commit subject rather than relying on a CVE identifier or named kernel release.
In statements provided to reporters, Intel and Arm offered different assessments of the risk. Jerry Bryant, Senior Director of Intel Product Assurance and Security, stated that Intel believes the behavior is already covered by existing Spectre v2 and BHI/IMBTI guidance, noting that Intel has not observed a real-world, end-to-end attack on its processors and plans no additional mitigation guidance. Arm acknowledged the research, stating that while some Arm CPUs might exhibit related behavior, it would not grant an attacker direct, deterministic control over the processor’s predicted branch target, and that their existing guidance for Spectre-v2 and Spectre-BHB is sufficient.
Technically, the attack works because modern hardware defenses, such as eIBRS (on Intel) and Safe-RET (on AMD), are designed assuming that no hostile code can run between the point of state neutralization and the point of use. By utilizing interrupts—which can fire anywhere in the operating system and can be scheduled with nanosecond precision by any user—the attackers break this fundamental TOCTOU (Time-of-Check to Time-of-Use) assumption.
The researchers noted that the initial window for the attack was two instructions, or six bytes, on Zen 2. They enhanced the exploit by using a sibling hyperthread to evict these bytes from the L1 and L2 cache and by selecting the write syscall, which allowed control over two registers. While mispredictions were observed at rates of 0.75% on Zen 2 and 0.22% on Intel Arrow Lake, the researchers emphasized that mispredictions are only a necessary, but not sufficient, condition for a successful Spectre attack. They concluded that an end-to-end attack remains possible on Intel by combining the Interrupt Injection primitive with existing disclosure gadgets already present in the kernel.
The detailed research was presented at Black Hat USA, and the full paper is scheduled to appear at USENIX Security in Baltimore the following week.