TONTOU: Interrupt-Injection Attack Bypasses Spectre v2 (eIBRS/Safe RET) Defenses on Intel and AMD CPUs

TONTOU: Interrupt-Injection Attack Bypasses Spectre v2 (TL-2026-1954), also tracked as Interrupt Injection Attack, is a high-severity software vulnerability, first published 2026-08-06. It has no confirmed attribution, affects AMD Zen-family processors (Safe RET / SRSO Spectre v2 mitigation), references 1 CVE (CVE-2026-68480), maps to 9 MITRE ATT&CK techniques (T1003.008, T1005, T1082), and is covered by 9 detection rules and 24 indicators of compromise.

Key facts for TL-2026-1954

Threat ID
TL-2026-1954
Also known as
Interrupt Injection Attack, Safe RET Interrupt Vulnerability
Severity
HIGH
Status
ACTIVE
Category
VULNERABILITY
First published
2026-08-06
Last reviewed
2026-08-06
Attribution confidence
LOW
Motivation
UNKNOWN
Detection rules
9
Indicators of compromise
24

MIT CSAIL researchers Daniël Trujillo and Mengjia Yan disclosed TONTOU (Time-of-Neutralization to Time-of-Use), a speculative-execution attack that exploits the timing gap between branch-predictor sanitization and its actual use. An 'interrupt injection' primitive schedules high-frequency timer interrupts to land inside that window and re-poison predictor structures (RSB/BHB), defeating Intel's eIBRS and AMD's Safe RET mitigations.

How TONTOU: Interrupt-Injection Attack Bypasses Spectre v2 works

TONTOU (Time-of-Neutralization to Time-of-Use) is a speculative-execution attack developed by Daniël Trujillo (PhD student) and associate professor Mengjia Yan at MIT CSAIL, presented at Black Hat USA 2026 with a full paper scheduled for USENIX Security 2026 (Baltimore, October 27-29). The name is a deliberate analogue to software TOCTOU races: instead of racing a check against a use, TONTOU races a branch-predictor *neutralization* event (state cleaning performed by a Spectre v2 mitigation) against the *use* of that predictor by a protected branch.

The core primitive is 'interrupt injection': an unprivileged user-mode program schedules high-frequency timer interrupts, invoking syscalls directly (native OS API calls, not a shell/scripting layer) so that one interrupt lands inside the narrow post-neutralization window — on AMD Zen 2 this window is as short as two instructions / six bytes. When the interrupt fires inside that window, the kernel is redirected into the interrupt handler, which the attacker uses to re-poison microarchitectural branch-prediction state (the Return Stack Buffer and Branch History Buffer) before the originally-protected branch executes. The researchers use a four-stage framework — neutralization, redirection, poisoning, use/exploitation — to characterize the race, and combine the primitive with the RSB-training technique from the prior Inception attack (CVE-2023-20569, disclosed by ETH Zurich's COMSEC group, AMD bulletin AMD-SB-7005) to fill the Return Stack Buffer with attacker-chosen targets. An optimization technique evicts target bytes from L1/L2 cache using a sibling hyperthread to slow victim execution and widen the interrupt-landing success window, and the attacker deliberately triggers the race from the `write` syscall specifically, because it leaves two general-purpose registers under attacker control at the moment the interrupt lands; interrupts landed inside the vulnerable window in 5-12% of attempts, falling to roughly 2% when the exploit additionally required those attacker-controlled register values. Reliable end-to-end exploitation required the attacker to first profile the target's exact CPU microarchitecture generation and kernel version — window size and mitigation applicability differ per platform (a two-instruction/six-byte window on Zen 2 versus far lower misprediction rates on Cascade Lake Refresh and Arrow Lake) — so per-platform client-configuration fingerprinting was a precondition for tuning the interrupt-injection timing, not an incidental detail. The full end-to-end AMD Zen 2 demonstration ran on an AMD Ryzen 7 4700G test system (Linux 6.14.0-37-generic, 16GB RAM), where the overall window-landing/misprediction success rate was measured at 0.75% — comparable in kind to the 0.22% (Arrow Lake) and 0.037% (Cascade Lake Refresh) rates recorded on the Intel test platforms, though only the Zen 2 rate translated into a demonstrated end-to-end kernel-memory leak.

This defeats two mitigations that were believed to close the Spectre v2 (Branch Target Injection) attack surface: Intel's enhanced Indirect Branch Restricted Speculation (eIBRS) — whose Branch History Injection countermeasure is enabled via the BHI_DIS_S control — and AMD's Safe RET, the default Linux mitigation for Speculative Return Stack Overflow (SRSO). On an AMD Zen 2 system running a stock Linux 6.14 kernel with all default Spectre v2 mitigations enabled and no inserted kernel modules, the PoC achieved full end-to-end kernel-memory disclosure: a 5.47 bytes/second leak rate at 91.97% accuracy, KASLR bypass in 10 of 10 runs, and recovery of /etc/shadow contents in 5 of 10 attempts, averaging ~18 minutes per automated end-to-end attempt.

Misprediction behavior consistent with the primitive was also observed on other platforms — AMD Zen 1 (behavior demonstrated, not a full kernel-memory leak), Intel Cascade Lake Refresh (0.037% mispredictions) and Arrow Lake (0.22% mispredictions) — though the researchers state a complete end-to-end Intel exploit requires additional software conditions and was not demonstrated; Zen 4 showed no mispredictions in their testing despite being included in AMD's advisory. Zen 3 is listed by AMD as potentially affected but was not independently demonstrated by the researchers.

The researchers privately disclosed TONTOU to AMD, Intel, and Arm on 2026-02-05. A first Linux kernel fix, 'x86/bugs: Make Safe-RET robust against interrupt injection' (commit f5fdd6665ac4d8528ed1c9242cb1cf7a7f5bdb0e, authored by AMD engineers Borislav Petkov and David Kaplan), was merged upstream 2026-06-02; it fixes register state as though Safe-RET had completed and avoids executing the RET instruction after an interrupt return, rather than adding new run-time checks. That fix shipped in stable/LTS kernels 5.10.263, 5.15.214, 6.1.181, 6.6.149, and 6.18.43, plus mainline 7.1.7, on 2026-08-06 (backport commit 7e7f81cf6f5ca3311e526308f55d7c54d3ba71f9). An initial hardening attempt on top of that fix was reverted the same day as incorrect; a corrected, 'hardened' follow-up — adding an LFENCE and a new handle_interrupted_saferet() register-state-adjustment routine so speculative execution cannot leak data when an interrupt lands mid-sequence — shipped the next day, 2026-08-07, in 5.10.264, 5.15.215, 6.1.182, 6.6.150, and 6.12.102 (124 lines across five x86 arch files, authored by Petkov). Mitigation status is exposed to userspace via `/sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow`. The combined fix is tracked as CVE-2026-68480. AMD published security bulletin AMD-SB-7061 ('Safe RET Interrupt Vulnerability') on 2026-08-06, attributing the root cause specifically to the Linux kernel's implementation of Safe RET rather than to AMD silicon, and crediting Daniël Trujillo as the reporting researcher.

Intel's assessment (per Jerry Bryant, Senior Director of Product Assurance) is that the observed behavior relates to Branch History Injection / Indirect Branch Mode Technology Injection (BHI/IMBTI) scenarios already covered by Intel's existing Spectre v2 and BHI/IMBTI guidance, and Intel does not plan additional mitigations; the researchers received a discretionary bug-bounty payment described as 'in the hundreds of dollars.' Arm confirmed awareness, stating that while some Arm CPUs may exhibit aspects of the described behavior, 'this behavior would not give an attacker direct deterministic control over the processor's predicted branch target,' and classifies the leakage as already addressed by existing Spectre-v2/Spectre-BHB guidance with no new mitigation planned. The researchers assess that end-to-end Intel exploitation is plausible by combining the interrupt-injection primitive with existing disclosure gadgets, noting mispredictions are 'a necessary but not sufficient condition for a Spectre attack.'

MITRE ATT&CK techniques used in TL-2026-1954

Credential Access

T1003.008 /etc/passwd and /etc/shadow

Collection

T1005 Data from Local System; T1119 Automated Collection

Discovery

T1082 System Information Discovery

Execution

T1106 Native API

Resource Development

T1587.004 Exploits; T1588.005 Exploits; T1588.006 Vulnerabilities

Reconnaissance

T1592.004 Client Configurations

Affected products and versions in TONTOU: Interrupt-Injection Attack Bypasses Spectre v2

  • AMD — Zen-family processors (Safe RET / SRSO Spectre v2 mitigation)
    Vulnerable versions: Zen 1 (behavior demonstrated); Zen 2 (full end-to-end kernel-memory disclosure demonstrated); Zen 3 (listed in AMD-SB-7061 as potentially affected, not independently demonstrated); Zen 4 (included in AMD-SB-7061; no mispredictions detected in researchers' own testing)
    Fixed in: Systems running Linux kernel 5.10.264, 5.15.215, 6.1.182, 6.6.150, 6.12.102, 6.18.43, or 7.1.7 and later (first stable backport at 5.10.263/5.15.214/6.1.181/6.6.149 per the CVE record, superseded same-week by the hardened LFENCE fix)
  • Intel — Processors implementing enhanced Indirect Branch Restricted Speculation (eIBRS)
    Vulnerable versions: Cascade Lake Refresh (0.037% mispredictions observed); Arrow Lake (0.22% mispredictions observed)
    Fixed in: None issued — Intel assesses the behavior as covered by existing Spectre v2 / BHI-IMBTI guidance (BHI_DIS_S control) and does not plan a new mitigation
  • Linux Foundation — Linux kernel (x86 Safe-RET / SRSO mitigation code)
    Vulnerable versions: < 5.10.264; < 5.15.215; < 6.1.182; < 6.6.150; < 6.12.102; < 6.18.43; < 7.1.7
    Fixed in: 5.10.264; 5.15.215; 6.1.182; 6.6.150; 6.12.102; 6.18.43; 7.1.7

Remediation for TONTOU: Interrupt-Injection Attack Bypasses Spectre v2

Patches

  • Linux kernel commit f5fdd6665ac4d8528ed1c9242cb1cf7a7f5bdb0e — 'x86/bugs: Make Safe-RET robust against interrupt injection' (Borislav Petkov, David Kaplan), merged upstream 2026-06-02.
  • First stable backport, commit 7e7f81cf6f5ca3311e526308f55d7c54d3ba71f9, shipped 2026-08-06 in 5.10.263, 5.15.214, 6.1.181, 6.6.149, 6.18.43, and mainline 7.1.7.
  • Hardened follow-up fix (LFENCE + handle_interrupted_saferet()) shipped 2026-08-07 in 5.10.264, 5.15.215, 6.1.182, 6.6.150, and 6.12.102 after an interim hardening attempt was reverted as incorrect.

Immediate actions

  • Apply the patched Linux kernel for your branch — 5.10.264, 5.15.215, 6.1.182, 6.6.150, 6.12.102, 6.18.43, or mainline 7.1.7 — which masks interrupts during the Safe-RET sequence and avoids executing RET after an interrupt return.
  • Reboot patched AMD Zen 1-4 systems to load the fixed kernel; the hardened fix touches arch/x86/entry/entry_64.S, arch/x86/include/asm/nospec-branch.h, arch/x86/kernel/cpu/bugs.c, and arch/x86/lib/retpoline.S, adding an LFENCE and the handle_interrupted_saferet() routine.
  • Verify mitigation status via /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow.
  • Restrict or monitor unprivileged local code execution on multi-tenant / shared-kernel AMD Zen systems that cannot yet be patched.

Workarounds

  • No standalone runtime toggle/workaround is documented; AMD's assessment is that the flaw is specific to the Linux implementation of Safe RET, so the kernel patch is the primary control.
  • As an interim measure on unpatched AMD systems, reduce untrusted local code execution and exposure to attacker-controlled high-frequency timer interrupts on shared systems.

Longer-term hardening

  • Track AMD-SB-7061 and AMD microcode/firmware channels for any future silicon-level Safe RET fix beyond the current Linux-side patch.
  • Monitor for maturation of an Intel-side end-to-end PoC given confirmed (if lower-rate) BHI/IMBTI-consistent mispredictions on Cascade Lake Refresh and Arrow Lake, since Intel has not issued a new mitigation.
  • Fold Spectre-class/speculative-execution kernel hardening into standard patch-SLA scope for cloud and shared-tenancy infrastructure, given the demonstrated unprivileged-to-kernel-memory disclosure path.

CVEs associated with TONTOU: Interrupt-Injection Attack Bypasses Spectre v2

CVE-2026-68480

Timeline of TONTOU: Interrupt-Injection Attack Bypasses Spectre v2

  • TONTOU interrupt-injection attack privately disclosed to AMD, Intel, and Arm by MIT CSAIL researchers Daniël Trujillo and Mengjia Yan.
  • Linux kernel commit f5fdd6665ac4d8528ed1c9242cb1cf7a7f5bdb0e ('x86/bugs: Make Safe-RET robust against interrupt injection') merged upstream, authored by AMD engineers Borislav Petkov and David Kaplan.
  • BleepingComputer and The Hacker News publish the first public reporting on TONTOU, including the 5.47 bytes/sec, 91.97%-accuracy, and /etc/shadow-recovery figures.
  • TONTOU research presented at Black Hat USA 2026.
  • First stable/LTS backport (commit 7e7f81cf6f5ca3311e526308f55d7c54d3ba71f9) ships in Linux 5.10.263, 5.15.214, 6.1.181, 6.6.149, 6.18.43, and mainline 7.1.7; an initial follow-on hardening attempt is reverted the same day as incorrect.
  • CVE-2026-68480 published, covering Linux kernel versions before 5.10.263, 5.15.214, 6.1.181, 6.6.149, 6.12.102, 6.18.43, and 7.1.7.
  • AMD publishes security bulletin AMD-SB-7061 ('Safe RET Interrupt Vulnerability'), covering Zen 1-4 and attributing the root cause to the Linux Safe RET implementation.
  • The Register publishes coverage of the TONTOU disclosure, including vendor responses from AMD, Intel, and Arm.
  • Corrected, hardened Safe-RET fix — adding an LFENCE and a new handle_interrupted_saferet() register-state routine — ships in Linux 5.10.264, 5.15.215, 6.1.182, 6.6.150, and 6.12.102.
  • Full TONTOU paper scheduled for formal presentation at USENIX Security 2026 in Baltimore (October 27-29, 2026).

Sources cited for TONTOU: Interrupt-Injection Attack Bypasses Spectre v2

Threats related to TONTOU: Interrupt-Injection Attack Bypasses Spectre v2

Detection coverage for TL-2026-1954

As of 2026-08-06, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1954 across Splunk SPL, Microsoft KQL and Sigma, covering 24 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Latest Threats