กลไกอย่าง eIBRS และ Safe RET พยายามทำให้สถานะของ branch predictor ปลอดภัยเมื่อซีพียูข้ามขอบเขตสิทธิ์ เช่น ขณะเปลี่ยนจาก user space ไปทำงานใน kernel space
สมมติฐานสำคัญของการป้องกันคือ ผู้โจมตีจะไม่สามารถเข้าแทรกแซงได้ในช่วงสั้น ๆ หลังจากสถานะถูกทำความสะอาด แต่ก่อนที่เคอร์เนลจะเรียกใช้ตัวทำนายสาขา อย่างไรก็ตาม TONTOU แสดงให้เห็นว่าสมมติฐานนี้ไม่เป็นจริง
ในกรณีของ Safe RET บน AMD ช่องว่างดังกล่าวอาจแคบเพียง 2 คำสั่ง ผู้โจมตีที่รันโค้ดแบบไม่มีสิทธิ์พิเศษบนเครื่องเป้าหมายสามารถตั้งจังหวะให้ฮาร์ดแวร์อินเทอร์รัปต์เข้ามาในช่วงนี้ได้ เทคนิคดังกล่าวเรียกว่า INTERRUPT INJECTION เมื่ออินเทอร์รัปต์เข้าถึงจังหวะที่เหมาะสม ผู้โจมตีจะทำให้สถานะของ branch predictor ถูกวางยาซ้ำ หลังกลไกป้องกันทำงานไปแล้ว แต่ก่อนที่เคอร์เนลจะนำสถานะนั้นไปใช้
ผลลัพธ์คือการโจมตีแบบ speculative execution side channel ซึ่งการป้องกัน Spectre v2 ตั้งใจจะหยุดไว้ กลับมาทำงานได้อีกครั้ง โดยเงื่อนไขพื้นฐานของการโจมตีคือผู้โจมตีต้องสามารถรันโค้ดใน user space บนเครื่องเป้าหมายเท่านั้น ไม่จำเป็นต้องมีสิทธิ์ผู้ดูแลระบบ
ทีมวิจัยสร้าง exploit แบบครบกระบวนการและทดสอบกับซีพียูหลายรุ่น ได้แก่ Intel Cascade Lake Refresh, Intel Arrow Lake, AMD Zen 2 และ AMD Zen 4
ผลการทดสอบที่โดดเด่นเกิดขึ้นบนระบบ AMD Zen 2 ซึ่งใช้ Linux 6.14.0-37-generic, หน่วยความจำ 16GB และเปิดใช้การป้องกัน Spectre v2 ตามค่าเริ่มต้น โดยการโจมตีสามารถรั่วไหลข้อมูลจากหน่วยความจำเคอร์เนลแบบเลือกได้ที่อัตรา 5.47 ไบต์ต่อวินาที
ข้อมูลที่ดึงออกมามีความแม่นยำ 91.97% และนักวิจัยสามารถค้นหาและดึงเนื้อหาของไฟล์ /etc/shadow ซึ่งใช้เก็บแฮชรหัสผ่านของระบบ Linux ได้สำเร็จ 5 จาก 10 ครั้ง แต่ละครั้งใช้เวลาประมาณ 18 นาที
บนแพลตฟอร์ม Intel ทีมวิจัยสาธิตการข้ามการป้องกัน eIBRS ได้บางส่วนบน Cascade Lake Refresh และ Arrow Lake แต่ลักษณะของพื้นผิวการโจมตีแตกต่างจากกรณี Safe RET บน AMD ขณะเดียวกัน งานทดสอบยังไม่ยืนยันการทำให้เกิดการคาดเดาสาขาผิดบน AMD Zen 4 ด้วยวิธีเดียวกัน
ไทม์ไลน์การเปิดเผยและแก้ไขปัญหาเป็นดังนี้
x86/bugs: Make Safe-RET robust against interrupt injection AMD ประเมินว่าปัญหานี้เกี่ยวข้องกับการนำ Safe RET ไปใช้งานใน Linux ซึ่งเป็นส่วนหนึ่งของมาตรการรับมือ Speculative Return Stack Overflow (SRSO) มากกว่าจะเป็นข้อบกพร่องของสถาปัตยกรรมโปรเซสเซอร์เพียงอย่างเดียว
ด้าน Intel รับทราบผลการค้นพบระหว่างกระบวนการเปิดเผยข้อมูลแบบประสานงาน และมอบรางวัลผ่านโครงการ bug bounty แต่แจ้งนักวิจัยว่าจะไม่พัฒนามาตรการป้องกันเพิ่มเติม โดยให้เหตุผลว่าการโจมตีในโลกจริงยังขึ้นอยู่กับปัจจัยต่าง ๆ เช่น การมีอยู่ของ disclosure gadgets ที่จำเป็นต่อการโจมตี
Spectre รุ่นก่อนหน้ามุ่งโจมตีกลไกคาดการณ์ของซีพียูโดยตรง แต่ TONTOU หันมาโจมตี กระบวนการป้องกัน ที่สร้างขึ้นเพื่อหยุด Spectre โดยเฉพาะ นักวิจัยพบ race condition ระหว่างเวลาที่ตัวทำนายถูกทำให้เป็นกลางกับเวลาที่ตัวทำนายถูกเรียกใช้ จึงเปิดทางให้เกิดการโจมตีรูปแบบใหม่
กรณีนี้ยังสะท้อนข้อจำกัดของการแก้ปัญหาความปลอดภัยซีพียูด้วยซอฟต์แวร์เพียงอย่างเดียว แม้แพตช์ Linux จะปิดช่องอินเทอร์รัปต์อินเจกชันที่แสดงให้เห็นบนโปรเซสเซอร์ AMD Zen ได้ แต่สมมติฐานเชิงสถาปัตยกรรมที่ว่า “การทำความสะอาดตัวทำนาย” และ “การนำตัวทำนายไปใช้” สามารถถือเป็นการทำงานแบบอะตอมิกต่อเนื่องกัน ได้ถูกพิสูจน์แล้วว่าไม่ปลอดภัยเสมอไป