มีแน่นอน มีการเก็งกำไร x86 แบบเส้นตรงจำนวนมากในช่วงไม่กี่เดือนที่ผ่านมา โดยมีการรวมการบรรเทาปัญหาแบบคอมไพเลอร์สำหรับ GCC 12 และจากนั้นเริ่มต้นด้วย Linux 5.17 เคอร์เนลสามารถใช้ปุ่มใหม่นั้นเพื่อป้องกันช่องโหว่ที่อาจเกิดขึ้น ขณะนี้ การสนับสนุนคอมไพเลอร์ถูกย้ายกลับไปที่ GCC 11

แทนที่จะพบการบรรเทาการเก็งกำไรแบบเส้นตรง x86 เฉพาะในรุ่น GCC 12 ที่กำลังจะมีขึ้นเท่านั้น มันกลับถูกย้ายกลับไปยังซีรีย์เสถียร GCC 11 ด้วย HJ Lu ของ Intel ได้ส่งแพตช์เพิ่ม-mharden-sls=และ-คอมไพเลอร์ mindirect-branch-cs-prefix เปลี่ยนเป็น GCC 11 code-base การลด x86 SLS เพิ่มคำสั่ง INT3 หลังจากที่ฟังก์ชันส่งคืนและสาขาทางอ้อมเพื่อป้องกันตัวประมวลผลที่อาจคาดการณ์ว่าจะดำเนินการเชิงเส้นในหน่วยความจำผ่านการเปลี่ยนแปลงแบบไม่มีเงื่อนไขในโฟลว์การควบคุม ตัวเลือก-mindirect-branch-cs-prefix จะใช้โดยอัตโนมัติสำหรับการสร้าง RETPOLINE

จนถึงตอนนี้ ฉันยังไม่เห็นคำแนะนำอย่างเป็นทางการจาก Intel เกี่ยวกับคำแนะนำ x86 SLS และโปรเซสเซอร์ที่ได้รับผลกระทบ แต่เมื่อพิจารณาจากกิจกรรมแพตช์ x86 ทั้งหมดนี้ไม่ได้เกิดขึ้นเป็นเวลาหนึ่งปีหลังจากที่ช่องโหว่ Arm SLS ถูกเปิดเผย อาจมีสิ่งใหม่ๆ มากมายที่ก่อให้เกิดกิจกรรม x86 ทั้งหมดนี้ในช่วงไม่กี่เดือนที่ผ่านมา

โปรแกรมแก้ไข GCC 11 อยู่ใน gcc-patches และในทางกลับกัน ควรปรากฏสำหรับการเปิดตัวจุด GCC 11.3 (เช่นเดียวกับการเปิดตัวคุณลักษณะ GCC 12.1 ในเดือนเมษายน)

Categories: IT Info