CVE-2022-4139 ได้รับการเผยแพร่สู่สาธารณะในวันนี้เนื่องจากปัญหาความปลอดภัยของไดรเวอร์กราฟิกเคอร์เนล i915 ที่ส่งผลกระทบต่อกราฟิก Gen12 ทั้งหมด ตั้งแต่กราฟิก Tigerlake ในตัวจนถึงกราฟิก Raptor Lake ล่าสุด ตลอดจนรหัส Meteor Lake ที่กำลังพัฒนา บวกกับ GPU แยกของ DG2/นักเล่นแร่แปรธาตุและเสียงอาร์กติก

Intel ได้เปิดเผย CVE-2022-4139 ว่าเป็นปัญหาการล้าง GPU TLB ที่ไม่ถูกต้องภายในไดรเวอร์กราฟิกเคอร์เนล Linux ในบางกรณี บัฟเฟอร์ lookaside การแปล (TLB) จะไม่ล้างเลย อย่างน้อยที่สุด อาจมีความเสียหายแบบสุ่มของหน่วยความจำหรือการรั่วไหลของข้อมูลในขณะที่ยังไม่ได้รับการพิจารณาว่าหน่วยความจำเฉพาะอาจตกเป็นเป้าหมายในเวอร์ชันเคอร์เนล Linux ที่ได้รับผลกระทบจนถึงจุดนี้หรือไม่ เชื่อว่าทุกเวอร์ชันตั้งแต่ Linux 5.4 จนถึงเคอร์เนลเวอร์ชันล่าสุดในปัจจุบันจะได้รับผลกระทบเมื่อใช้กราฟิกอินทิเกรต/แยก Intel Gen12 แม้ว่านี่จะเป็นปัญหาเกี่ยวกับไดรเวอร์ของ Intel และไม่ใช่ปัญหาของฮาร์ดแวร์เอง

การเปิดเผยรายการ oss-sec จากหมายเหตุของ Intel:

พบรหัสการล้าง GPU TLB ที่ไม่ถูกต้องในไดรเวอร์เคอร์เนล i915

ในบางกรณี (ฮาร์ดแวร์ Gen12 ที่มีเครื่องยนต์บางประเภท) TLB ของเครื่องยนต์จะไม่ถูกชะล้างเลย ขึ้นอยู่กับว่า GPU ทำงานอยู่เบื้องหลัง IOMMU ที่ใช้งานอยู่หรือไม่ มีสองสถานการณ์ที่เป็นไปได้ซึ่งอาจเกิดขึ้นได้เนื่องจากการแมป TLB ที่ค้าง: 1. หากไม่มี IOMMU-GPU ยังสามารถเข้าถึงหน่วยความจำกายภาพซึ่ง OS สามารถกำหนดให้กับกระบวนการอื่นได้แล้ว 2. ด้วย IOMMU-GPU สามารถเข้าถึงหน่วยความจำใดๆ ก็ได้ หากกระบวนการที่เป็นอันตรายสามารถสร้าง/ใช้การแมป IOMMU ที่จำเป็นซ้ำได้

ขณะนี้ยังไม่ทราบว่าหน่วยความจำเฉพาะสามารถ ตกเป็นเป้าหมาย แต่ความเสียหายของหน่วยความจำแบบสุ่มหรือการรั่วไหลของข้อมูลเป็นสิ่งที่ทราบกันดีอยู่แล้ว

GPU แบบรวมและแบบแยกของ Intel Gen12 ทั้งหมดได้รับผลกระทบ รวมถึง Tiger Lake, Rocket Lake, Alder Lake, DG1, Raptor Lake, DG2, Arctic Sound, Meteor Lake การแก้ไขได้รับการพัฒนาแล้วและประกอบด้วยการแก้ไขวิธีการเขียนไปยังรีจิสเตอร์เฉพาะ

Linus Torvalds เพียง ผสานโค้ดห้าบรรทัดนี้เพื่อลดการทำให้ TLB ไม่ถูกต้องบนกราฟิก Intel Gen12 สำหรับวิดีโอและเครื่องมือคำนวณ

drm/i915: แก้ไข TLB ที่ใช้ไม่ได้สำหรับวิดีโอและเครื่องมือประมวลผล Gen12

ในกรณีของวิดีโอและเครื่องมือคำนวณ Gen12 การลงทะเบียน TLB_INV จะถูกปิดบัง หากต้องการแก้ไขหนึ่งบิต บิตที่เกี่ยวข้องในครึ่งบนของการลงทะเบียนจะต้อง มิฉะนั้นจะไม่มีอะไรเกิดขึ้น

แพตช์เล็กๆ นี้ควรถูกส่งกลับไปยังซีรีส์ที่เสถียรของ Linux ในลำดับสั้นๆ

Categories: IT Info