พบ Spectre-v2 BTR ช่องโหว่ใหม่ เจาะข้อมูล Linux แม้อัปเดตแล้ว
กลุ่มนักวิชาการจาก VUSec และ Scuola Superiore Sant'Anna ได้เปิดเผยรายละเอียดของช่องโหว่ Spectre CPU รูปแบบใหม่ที่ส่งผลกระทบต่อเอนจิน Just-In-Time (JIT) ในเว็บเบราว์เซอร์, รันไทม์ของภาษาโปรแกรม และเคอร์เนลของระบบปฏิบัติการจากผู้ผลิต CPU หลายราย
Spectre-v2 รูปแบบใหม่นี้มีชื่อรหัสว่า Branch Target Reuse (BTR) โดยนักวิจัย Sander Wiebing, Yuhui Zhu, Alessandro Biondi และ Cristiano Giuffrida ระบุว่า แม้ CPU สมัยใหม่จะกู้คืนความสอดคล้องของโค้ดหลังการแก้ไขด้วยตนเองได้ แต่รายการทำนายสาขาทางอ้อม (indirect branch prediction) ที่ล้าสมัยกลับไม่ถูกยกเลิกเสมอไป
ในเอนจิน JIT เป้าหมายที่ล้าสมัยเหล่านี้สามารถคงอยู่ในหน่วยความจำได้นานกว่าโค้ดต้นฉบับ และจะถูกนำกลับมาใช้ใหม่เมื่อมีการเติมข้อมูลใน code cache อีกครั้ง ส่งผลให้เกิดสภาวะ transient execute-after-free ซึ่งช่วยให้ผู้โจมตีสามารถไฮแจ็ค control flow ไปยังโค้ดที่สร้างขึ้นใหม่เพื่อข้ามระบบความปลอดภัยหรือเข้าถึง gadget ที่วางตำแหน่งไม่ตรงกันได้
จากการทดสอบพบว่า BTR ส่งผลกระทบต่อ SpiderMonkey (เอนจิน JIT ของ Mozilla Firefox), GraalVM และ cBPF JIT ของเคอร์เนล Linux โดยนักวิจัยได้สาธิตการโจมตีแบบ end-to-end ต่อเคอร์เนล Linux ซึ่งสามารถกู้คืนแฮชรหัสผ่านของ root ได้ภายในไม่กี่นาที แม้จะเป็นระบบของ Intel ที่อัปเดตแพตช์และเปิดระบบป้องกันไว้ครบถ้วนแล้วก็ตาม
Spectre หมายถึง ช่องโหว่ที่อาศัยการประมวลผลแบบคาดเดา (speculative execution) เพื่อเข้าถึงข้อมูลที่ละเอียดอ่อนผ่านช่องทางด้านข้าง (side channel) ซึ่ง ประเภทเฉพาะของการโจมตี Spectre อย่าง Spectre-v2 จะใช้วิธีวางยาพิษกลไกการทำนายสาขาของ CPU เพื่อให้รันโค้ดที่ผู้โจมตีควบคุม
แม้ ผลลัพธ์จากการทำนายผิดพลาด จะถูกยกเลิกไปในภายหลัง แต่ผู้โจมตีก็ยังสามารถอนุมานข้อมูลได้จากการเปลี่ยนแปลงสถานะของแคช BTR จึงถือเป็นตัวอย่างแรกของการโจมตี Spectre-v2 แบบ "เชิงเวลา" (temporal) ในตำแหน่งเดิม (in-place) ที่ใช้งานได้จริง เนื่องจากใช้สาขาทางอ้อมเดียวกันทั้งในการฝึกฝนและโจมตี
ช่องโหว่ BTR สามารถทำลายมาตรการป้องกันเดิมอย่าง Training Solo (CVE-2024-28956 และ CVE-2025-24495) ได้สำเร็จ โดยอาศัยเพียงสาขาทางอ้อมและเป้าหมายเดียว ตราบใดที่โค้ดเบื้องหลังเปลี่ยนความหมายในลักษณะที่ผู้โจมตีควบคุมได้ ซึ่งพบได้ทั่วไปในเอนจิน JIT
ปัจจุบันมีการออกแพตช์ป้องกัน BTR และรวมเข้ากับเคอร์เนล Linux เรียบร้อยแล้ว (CVE-2026-64507 และ CVE-2026-64508)
สำหรับแนวทางการแก้ไขของผู้ผลิตรายอื่น GraalVM เลือกใช้วิธี การสุ่มตำแหน่ง JIT code-cache ส่วน Mozilla กำลังพิจารณามาตรการป้องกันแบบ IBPB แต่ในปัจจุบันจะเน้นไปที่การติดตั้งระบบ site isolation ให้สมบูรณ์ก่อน
การค้นพบนี้สะท้อนถึงข้อบกพร่องของ CPU สมัยใหม่ที่ไม่ได้ซิงค์สถานะไมโครอาร์คิเทคเจอร์ทั้งหมดเมื่อมีการเขียนทับโค้ด ซึ่งอาจนำไปสู่ปัญหาที่คล้ายคลึงกันในอนาคต เช่นเดียวกับเทคนิค Interrupt Injection ที่ถูกเปิดเผยก่อนหน้านี้ไม่นาน
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
