พวกเขาตรวจพบช่องโหว่สองช่องโหว่ใน GRUB2

ความอ่อนแอ

หากถูกโจมตี ข้อบกพร่องเหล่านี้อาจทำให้ผู้โจมตีเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต หรือก่อให้เกิดปัญหาโดยทั่วไป

รายละเอียดของช่องโหว่ 2 รายการในบูตโหลดเดอร์ GRUBXNUMX ได้รับการเปิดเผยว่าหน้าอาจนำไปสู่การเรียกใช้โค้ด เมื่อใช้แบบอักษรที่ออกแบบมาเป็นพิเศษและจัดการลำดับ Unicode บางอย่าง

มีการกล่าวถึงช่องโหว่ที่ตรวจพบคือe สามารถใช้เพื่อข้ามกลไกการบู๊ตที่ผ่านการตรวจสอบ UEFI Secure Boot ช่องโหว่ใน GRUB2 ทำให้รหัสถูกดำเนินการในขั้นตอนหลังจากการตรวจสอบ shim สำเร็จ แต่ก่อนที่ระบบปฏิบัติการจะโหลด ทำลายห่วงโซ่แห่งความไว้วางใจด้วยโหมด Secure Boot ที่ใช้งานอยู่และควบคุมกระบวนการหลังการบูตได้อย่างสมบูรณ์ เช่น ตัวอย่างเช่น เพื่อเริ่มระบบปฏิบัติการอื่น แก้ไขส่วนประกอบของระบบปฏิบัติการ และป้องกันการล็อกบายพาส

เกี่ยวกับช่องโหว่ที่ระบุ กล่าวถึงต่อไปนี้:

  • CVE-2022-2601: บัฟเฟอร์ล้นในฟังก์ชัน grub_font_construct_glyph() เมื่อประมวลผลแบบอักษรที่สร้างขึ้นเป็นพิเศษในรูปแบบ pf2 ซึ่งเกิดขึ้นเนื่องจากการคำนวณพารามิเตอร์ max_glyph_size ที่ไม่ถูกต้อง และการจัดสรรพื้นที่หน่วยความจำที่เห็นได้ชัดว่าเล็กกว่าที่จำเป็นในการวางสัญลักษณ์
  • CVE-2022-3775: การเขียนเกินขอบเขตเมื่อแสดงสตริง Unicode บางส่วนในแบบอักษรที่กำหนดเอง ปัญหามีอยู่ในรหัสการจัดการฟอนต์ และเกิดจากการขาดการควบคุมที่เหมาะสมเพื่อให้แน่ใจว่าความกว้างและความสูงของสัญลักษณ์ตรงกับขนาดบิตแมปที่มีอยู่ ผู้โจมตีสามารถเก็บเกี่ยวข้อมูลในลักษณะที่ทำให้คิวข้อมูลถูกเขียนออกจากบัฟเฟอร์ที่จัดสรร มีข้อสังเกตว่าแม้จะมีความซับซ้อนของการใช้ประโยชน์จากช่องโหว่ การเปิดโปงปัญหาต่อการดำเนินการโค้ดก็ไม่ได้รับการยกเว้น

การลดผลกระทบอย่างสมบูรณ์กับ CVE ทั้งหมดจะต้องมีการแก้ไขที่อัปเดตด้วย SBAT ล่าสุด (การกำหนดเป้าหมายขั้นสูงของการเริ่มต้นระบบอย่างปลอดภัย) และข้อมูลที่ได้รับจากการแจกจ่ายและผู้ขาย
ครั้งนี้จะไม่ใช้รายการเพิกถอน UEFI (dbx) และการเพิกถอนรายการที่เสียหาย
สิ่งประดิษฐ์จะทำกับ SBAT เท่านั้น สำหรับข้อมูลเกี่ยวกับวิธีการสมัคร
การเพิกถอน SBAT ล่าสุด ดู mokutil(1) การแก้ไขของผู้ขายสามารถทำได้อย่างชัดเจน อนุญาตการบูทของสิ่งประดิษฐ์การบูทที่เก่ากว่าที่รู้จัก

GRUB2, shim และส่วนบูตอื่น ๆ จากผู้ขายที่ได้รับผลกระทบทั้งหมดจะได้รับการอัปเดต จะใช้ได้เมื่อมีการยกเลิกการห้ามส่งสินค้าหรือหลังจากนั้นไม่นาน

มีการกล่าวถึงว่า ลินุกซ์ส่วนใหญ่ใช้แพตช์เลเยอร์ขนาดเล็กเซ็นชื่อแบบดิจิทัลโดย Microsoft สำหรับการบู๊ตที่ผ่านการยืนยันในโหมด UEFI Secure Boot เลเยอร์นี้จะตรวจสอบ GRUB2 ด้วยใบรับรองของตัวเองซึ่งทำให้นักพัฒนาการแจกจ่ายไม่สามารถรับรองทุกเคอร์เนลและการอัปเดต GRUB กับ Microsoft

เพื่ออุดช่องโหว่ โดยไม่ต้องเพิกถอนลายเซ็นดิจิทัล การกระจาย สามารถใช้กลไก SBAT ได้ (UEFI Secure Boot Advanced Targeting) ซึ่งรองรับโดย GRUB2, shim และ fwupd บนลีนุกซ์รุ่นยอดนิยมส่วนใหญ่

SBAT ได้รับการพัฒนาโดยความร่วมมือกับ Microsoft และเกี่ยวข้องกับการเพิ่มข้อมูลเมตาเพิ่มเติมให้กับไฟล์ปฏิบัติการของคอมโพเนนต์ UEFI รวมถึงข้อมูลผู้ผลิต ผลิตภัณฑ์ คอมโพเนนต์ และเวอร์ชัน ข้อมูลเมตาที่ระบุได้รับการเซ็นชื่อแบบดิจิทัลและสามารถรวมอยู่ในรายการส่วนประกอบที่อนุญาตหรือห้ามแยกต่างหากสำหรับ UEFI Secure Boot

SBAT อนุญาตให้บล็อกการใช้ลายเซ็นดิจิทัล สำหรับหมายเลขเวอร์ชันคอมโพเนนต์แต่ละรายการโดยไม่จำเป็นต้องยกเลิกคีย์สำหรับ Secure Boot. การบล็อกช่องโหว่ผ่าน SBAT ไม่จำเป็นต้องใช้ UEFI CRL (dbx) แต่จะทำที่ระดับการแทนที่คีย์ภายในเพื่อสร้างลายเซ็นและอัพเดต GRUB2, shim และสิ่งประดิษฐ์สำหรับบูตอื่นๆ ที่จัดเตรียมโดยการกระจาย

ก่อนการเปิดตัว SBAT การอัปเดตรายการเพิกถอนใบรับรอง (dbx, UEFI Revocation List) เป็นข้อกำหนดเบื้องต้นในการปิดกั้นช่องโหว่ทั้งหมด เนื่องจากผู้โจมตีไม่ว่าจะใช้ระบบปฏิบัติการใด สามารถใช้สื่อสำหรับบู๊ตได้กับเวอร์ชันเก่าที่มีช่องโหว่ของ GRUB2 ได้รับการรับรองโดยลายเซ็นดิจิทัลเพื่อประนีประนอม UEFI Secure Boot

ในที่สุด เป็นมูลค่าการกล่าวขวัญว่าการแก้ไขได้รับการปล่อยตัวเป็นแพตช์เพื่อแก้ไขปัญหาใน GRUB2 การอัปเดตแพ็คเกจยังไม่เพียงพอ คุณจะต้องสร้างลายเซ็นดิจิทัลภายในใหม่และอัปเดตตัวติดตั้ง bootloaders แพ็คเกจเคอร์เนล fwupd-firmware และ shim-layer

สามารถประเมินสถานะการแก้ไขช่องโหว่ในการแจกจ่ายได้ในหน้าเหล่านี้: อูบุนตู, SUSE, RHELFedoraDebian

คุณสามารถตรวจสอบเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ใน ลิงค์ต่อไปนี้