ช่องโหว่ Reptar ที่ส่งผลต่อโปรเซสเซอร์ Intel

Tavis Ormandy นักวิจัยด้านความปลอดภัยของ Google ได้ระบุช่องโหว่ใหม่ (CVE-2023-23583) ในโปรเซสเซอร์ Intel ซึ่งมีชื่อรหัสว่า Reptar ซึ่งส่วนใหญ่ก่อให้เกิดภัยคุกคามต่อระบบคลาวด์ที่ใช้เครื่องเสมือนของผู้ใช้ที่แตกต่างกัน ช่องโหว่นี้จะทำให้ระบบหยุดทำงานหรือหยุดทำงานเมื่อมีการดำเนินการบางอย่างกับระบบเกสต์ที่ไม่มีสิทธิพิเศษ เพื่อทดสอบระบบของคุณ มีการเผยแพร่ยูทิลิตี้ที่สร้างเงื่อนไขสำหรับการสำแดงช่องโหว่

ตามทฤษฎีแล้ว ช่องโหว่นี้สามารถใช้เพื่อขยายสิทธิ์จากวงแหวนที่สามเป็นวงแหวนป้องกันเป็นศูนย์ (CPL0) และหลบหนีจากสภาพแวดล้อมที่แยกได้ แต่สถานการณ์นี้ยังไม่ได้รับการยืนยันในทางปฏิบัติ เนื่องจากความยากลำบากในการดีบักในระดับไมโครสถาปัตยกรรม การตรวจสอบภายในที่ Intel ยังแสดงให้เห็นถึงศักยภาพในการใช้ประโยชน์จากช่องโหว่เพื่อเพิ่มสิทธิพิเศษภายใต้เงื่อนไขบางประการ

นักวิจัยระบุว่าช่องโหว่นี้มีอยู่ในตระกูลโปรเซสเซอร์ Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake และ Sapphire Rapids รายงานของ Intel ระบุว่าปัญหาเกิดขึ้นตั้งแต่โปรเซสเซอร์ Intel Core รุ่นที่ 10 (Ice Lake) และโปรเซสเซอร์ Xeon Scalable รุ่นที่สาม รวมถึงโปรเซสเซอร์ Xeon E/D/W (Ice Lake, Skylake, Haswell, Broadwell , สกายเลค, แซฟไฟร์ ราปิดส์, มรกต แรพิดส์, แคสเคดเลค, คูเปอร์เลค, ทะเลสาบดาวหาง, ทะเลสาบร็อกเก็ต) และอะตอม (ทะเลสาบอพอลโล, ทะเลสาบแจสเปอร์, แอริโซนาบีช, ทะเลสาบออลเดอร์, ปาร์คเกอร์ริดจ์, สโนว์ริดจ์, ทะเลสาบเอลคาร์ต และเดนเวอร์ตัน) ช่องโหว่ดังกล่าวได้รับการแก้ไขแล้วในการอัปเดตไมโครโค้ดเมื่อวานนี้ 20231114

ช่องโหว่ดังกล่าวเกิดจากข้อเท็จจริงที่ว่าภายใต้สถานการณ์สถาปัตยกรรมจุลภาคบางอย่าง การดำเนินการคำสั่ง “REP MOVSB” จะถูกเข้ารหัสด้วยคำนำหน้า “REX” ที่มากเกินไป ซึ่งนำไปสู่พฤติกรรมที่ไม่ได้กำหนดไว้ ปัญหาถูกค้นพบในระหว่างการทดสอบคำนำหน้าซ้ำซ้อน ซึ่งในทางทฤษฎีควรละเว้น แต่ในทางปฏิบัติทำให้เกิดผลแปลกๆ เช่น การเพิกเฉยต่อสาขาที่ไม่มีเงื่อนไข และการบันทึกตัวชี้ทำลายในคำแนะนำ xsave และการโทร การวิเคราะห์เพิ่มเติมแสดงให้เห็นว่าการเพิ่มคำนำหน้าซ้ำซ้อนในคำสั่ง "REP MOVSB" ทำให้เกิดความเสียหายกับเนื้อหาของบัฟเฟอร์ ROB (ReOrder Buffer) ที่ใช้ในการสั่งซื้อคำสั่ง

เชื่อกันว่าข้อผิดพลาดเกิดจากการคำนวณขนาดของคำสั่ง MOVSB ​​ที่ไม่ถูกต้องซึ่งนำไปสู่การละเมิดที่อยู่ของคำสั่งที่เขียนลงในบัฟเฟอร์ ROB หลัง MOVSB ​​​​ที่มีคำนำหน้ามากเกินไปและออฟเซ็ต ของตัวชี้คำสั่ง การดีซิงโครไนซ์ดังกล่าวสามารถจำกัดได้เพียงการหยุดชะงักของการคำนวณขั้นกลางพร้อมกับการฟื้นฟูสถานะอินทิกรัลในภายหลัง แต่หากคุณขัดข้องหลายคอร์หรือเธรด SMT ในเวลาเดียวกัน คุณสามารถสร้างความเสียหายให้กับสถานะสถาปัตยกรรมระดับจุลภาคได้มากพอที่จะทำให้เกิดปัญหาได้

ที่มา: opennet.ru

เพิ่มความคิดเห็น