Spectre v2嘅緩解措施好似eIBRS同Safe RET咁,喺特權邊界(例如由用戶空間切換到核心空間時)清理或隔離分支預測器狀態 。呢啲防禦嘅主要假設係,攻擊者無法喺清理之後但預測器被查詢之前嘅短暫間隔內操縱預測器。
TONTOU推翻咗呢個假設。對AMD嘅Safe RET嚟講,脆弱窗口只得 兩個指令 咁闊 。一個無特權嘅攻擊者可以注入一個精準定時嘅硬件中斷(叫做 INTERRUPT INJECTION),令佢落入呢個空隙,喺防禦已經執行咗但核心未消耗預測器狀態之前重新污染分支預測器 。咁樣,儘管所有預期嘅保護措施都喺度,推測執行側通道洩漏仍然會重新被啟動。
呢個攻擊只需要能夠喺目標機器上執行無特權嘅用戶空間代碼。唔需要提升嘅權限 。
研究員建立咗一個完整嘅端到端漏洞利用程式,並喺多個處理器世代上進行測試:
喺Intel平台上,研究員喺Cascade Lake Refresh同Arrow Lake上展示咗對eIBRS嘅部分繞過,不過攻擊面同AMD Safe RET嘅情況唔同 。呢項研究冇確認喺AMD Zen 4上使用相同方法成功進行分支誤導 。
披露同回應嘅時間線好快:
Intel喺協調披露過程中確認咗呢啲發現,並從其錯誤賞金計劃中頒發咗獎金,但話畀研究員聽佢哋唔會開發額外嘅緩解措施,理由包括現實世界利用需要嘅披露小工具嘅可用性等因素 。
TONTOU代表咗推測執行攻擊嘅一個重大演變。同早期針對核心預測機制本身嘅Spectre變種唔同,TONTOU攻擊嘅係 緩解措施 — 即係為咗阻止先前攻擊而建立嘅軟硬件防禦。通過識別中和同使用之间嘅競爭條件,研究員開闢咗一個全新嘅漏洞類別,需要從根本上唔同嘅防禦方法。
呢個攻擊亦都顯示,CPU安全性唔可以單靠軟件修補程式解決。雖然Linux核心嘅修補程式關閉咗AMD Zen處理器上特定嘅中斷注入窗口,但底層嘅架構假設 — 即係預測器清理同預測器使用可以視為一個原子操作 — 已經被證明係錯誤嘅。