สรุปสั้น
ช่องโหว่ใหม่ในโค้ด KVM ที่ใช้ทำ virtualization สำหรับหน่วยประมวลผล ARM64 ของ Linux kernel อาจทำให้หน่วยความจำของโฮสต์ที่ถูกปลดปล่อยไปแล้ว ยังคงเปิดเผยต่อเครื่องเสมือน (VM) ที่เป็นแขก บนโฮสต์ที่เปิดใช้งาน nested virtualization ช่องโหว่นี้ถูกติดตามในชื่อ CVE-2026-89775 เปิดให้แขกอ่านและเขียนหน่วยความจำเคอร์เนลของโฮสต์ได้ และนักวิจัยผู้ค้นพบระบุว่าสามารถใช้หลุดออกจากแขกไปรันโค้ดบนเครื่องโฮสต์ได้
โค้ดที่ได้รับผลกระทบเป็นส่วนของ mainline Linux kernel สำหรับ ARM64 และได้รับการแก้ไขแล้วใน Linux 6.18.51, 7.2.5 และ 7.3-rc1 อย่างไรก็ตาม ขอบเขตของช่องโหว่ค่อนข้างจำกัด เพราะ nested virtualization ซึ่งเปิดให้แขกรัน hypervisor ของตัวเองบน ARM64 นั้นถูกปิดไว้เป็นค่าเริ่มต้น เป็นโหมดทดลองที่ต้องเปิดตอนบูตและต้องอาศัยฮาร์ดแวร์ Armv8.4 ที่มีฟีเจอร์ FEAT_NV2 ดังนั้นโฮสต์ ARM64 KVM ทั่วไปที่ไม่เคยเปิดใช้งานโหมดนี้จึงอยู่นอกเส้นทางการโจมตีที่รายงานไว้
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 22 กันยายน 2569 ว่า นาย Hyunwoo Kim นักวิจัยด้านความปลอดภัยผู้รายงานช่องโหว่ ได้เปิดเผยข้อมูลเมื่อวันที่ 16 กันยายน 2569 โดยระบุว่าช่องโหว่อยู่ในส่วนของ KVM ที่จัดการ nested virtualization บน ARM64 เมื่อแขกจัดวางหน่วยความจำของตนในลักษณะหนึ่ง การคำนวณขนาดจะออกมาเป็นศูนย์ ทำให้ขั้นตอนที่ควรจะล้างรายการเก่าออกจากแคชที่อยู่ของหน่วยประมวลผล ซึ่งก็คือ TLB invalidation ถูกข้ามไป ผลคือหน้าหน่วยความจำของโฮสต์ที่ถูกปลดปล่อยไปแล้วยังคงถูกแมปและเขียนได้ และแขกสามารถอ่านและเขียนมันได้ครั้งละ 64 บิต โดยไม่มี hardware trap มาคืนการควบคุมให้โฮสต์
แม้บันทึกของเคอร์เนลจะระบุว่าโค้ดที่ได้รับผลกระทบมีมาตั้งแต่ Linux 6.16 แต่ผู้เขียนแพตช์ได้แท็กการแก้ไขไว้กับการเปลี่ยนแปลงในภายหลัง และผู้ดูแลที่ตรวจทานและทดสอบระบุว่าการข้าม invalidation “เริ่มเกิดขึ้นตั้งแต่ v6.17 เท่านั้น” ตามคำอธิบายนี้ โฮสต์ที่รัน 6.16 จึงมีโค้ดอยู่แต่ไม่มีพฤติกรรมที่ผู้โจมตีต้องใช้ นาย Kim ระบุว่าปัจจุบันยังไม่มีการเผยแพร่โค้ดโจมตี และยังไม่มีสัญญาณว่าช่องโหว่ถูกนำไปใช้โจมตีจริง
รายละเอียดช่องโหว่
นอกจากเส้นทางการหลุดจากแขกไปยังโฮสต์แล้ว ช่องโหว่ยังมีอีกวิธีหนึ่งในการนำไปใช้ในทางที่ผิด บนระบบที่ผู้ใช้คนใดก็ได้สามารถเปิด /dev/kvm ซึ่งเป็นอุปกรณ์ที่โปรแกรมใช้สร้างเครื่องเสมือน ผู้ใช้ภายในเครื่องสามารถสร้างแขกขึ้นมาและใช้ช่องโหว่เดียวกันเพื่อยกระดับสิทธิ์เป็น root ได้ โดย นาย Kim ชี้ไปที่ Red Hat Enterprise Linux ที่เปิดอุปกรณ์นี้ให้ผู้ใช้ทุกคนเป็นค่าเริ่มต้น ทั้งนี้เส้นทางนี้ยังคงต้องอาศัยการที่โฮสต์เปิด nested virtualization ไว้เช่นกัน
ผู้ผลิตต่าง ๆ ให้คะแนนความรุนแรงช่องโหว่นี้อยู่ในช่วง 7.8 ถึง 9.3 จาก 10 โดยเห็นตรงกันว่าผลกระทบสูงและเป็นการโจมตีแบบ local คือไม่สามารถยิงผ่านเครือข่ายได้ ความต่างของคะแนนสะท้อนมุมมองว่าช่องโหว่โจมตีได้ยากเพียงใด โดย Ubuntu ซึ่งให้ตัวเลข 9.3 กลับตั้งลำดับความสำคัญของตนเองไว้ที่ระดับกลาง และ ณ วันที่ 22 กันยายน ช่องโหว่ยังไม่อยู่ในบัญชีช่องโหว่ที่ถูกใช้โจมตีจริง (KEV) ของ CISA และคะแนนคาดการณ์โอกาสถูกโจมตีอยู่ต่ำกว่า 1%
เวอร์ชันที่ได้รับผลกระทบและการแก้ไข
ในระดับ upstream ช่องโหว่ได้รับการแก้ไขใน Linux 6.18.51, 7.2.5 และ 7.3-rc1 ส่วนดิสทริบิวชันต่าง ๆ ทยอยปล่อยการแก้ไขตามตารางของตนเอง โดยสถานะแตกต่างกันไปตามรุ่น
| เคอร์เนล/ดิสทริบิวชัน | สถานะ ณ วันที่ 22 กันยายน |
|---|---|
| Mainline Linux | แก้แล้วใน 6.18.51, 7.2.5 และ 7.3-rc1 |
| Red Hat Enterprise Linux | เคอร์เนลเวอร์ชัน 10 ได้รับผลกระทบ; เวอร์ชัน 6 ถึง 9 ไม่ได้รับผลกระทบ |
| Ubuntu | 26.04 รวมถึงเคอร์เนล AWS/Azure/GCP มีช่องโหว่; 24.04 LTS เคอร์เนลทั่วไปไม่ได้รับผลกระทบ แต่เคอร์เนล hardware-enablement รุ่นใหม่ (6.17, 7.0) มีช่องโหว่ |
| Amazon Linux | แพ็กเกจ AL2023 kernel6.18: รอการแก้ไข; เคอร์เนล Amazon Linux อื่นไม่ได้รับผลกระทบ |
| Debian | bookworm และ trixie ไม่ได้รับผลกระทบ (ไม่มีโค้ด); sid แก้แล้วใน 7.2.6-1; forky มีช่องโหว่ |
ผลกระทบ
การเปิดเผยครั้งนี้จุดคำถามว่าผู้เช่าบนคลาวด์ (cloud tenant) จะใช้ช่องโหว่นี้เจาะเข้าเครื่องของผู้ให้บริการได้หรือไม่ แต่บนผู้ให้บริการรายใหญ่ การตั้งค่าที่ช่องโหว่ต้องใช้กลับไม่มีให้บริการ โดย Amazon Web Services ระบุรองรับ nested virtualization เฉพาะอินสแตนซ์ที่ใช้ชิป Intel และ Google Cloud ก็ไม่รวมเครื่องเสมือน ARM ของตนไว้ในบริการนี้ นั่นไม่ได้แปลว่าแพลตฟอร์มเหล่านี้ปลอดภัยทั้งหมด แต่เส้นทางเฉพาะที่ช่องโหว่นี้ใช้ไม่ได้เปิดในบริการ ARM มาตรฐานของพวกเขา จุดที่ควรระวังที่สุดจึงเป็นโฮสต์ ARM64 ที่องค์กรบริหารเองและเปิด nested virtualization ไว้ รวมถึงระบบที่เปิด /dev/kvm ให้ผู้ใช้ทุกคนอย่าง RHEL 10 ซึ่งเพิ่มความเสี่ยงการยกระดับสิทธิ์เป็น root จากผู้ใช้ภายในเครื่อง ทั้งนี้ CVE-2026-89775 เป็นช่องโหว่หลุดจากแขกไปยังโฮสต์บน KVM ตัวที่สี่ที่ นาย Kim เปิดเผยในปีนี้ ต่อจาก Januscape (กรกฎาคม) และ Zapscape (สิงหาคม) ที่อยู่ในเวอร์ชัน x86 และ ITScape ที่เป็นการหลุด ARM64 KVM ซึ่งเผยแพร่เมื่อเดือนมิถุนายน
คำแนะนำ
ผู้ดูแลระบบที่ใช้โฮสต์ ARM64 บน KVM ควรตรวจสอบก่อนว่าได้เปิด nested virtualization ไว้หรือไม่ หากไม่ได้เปิดก็อยู่นอกเส้นทางการโจมตีที่รายงานไว้ แต่หากเปิดใช้งานควรเร่งอัปเดตเคอร์เนลเป็นรุ่นที่แก้ไขแล้ว (upstream 6.18.51, 7.2.5, 7.3-rc1) หรือรุ่นที่ดิสทริบิวชันของตนปล่อยออกมา โดยตรวจสอบสถานะเฉพาะรุ่นจากตารางด้านบนและหน้า security tracker ของผู้ผลิต สำหรับโฮสต์ที่ยังแพตช์ไม่ได้ทันที Red Hat ระบุว่ายังไม่มีมาตรการบรรเทา (workaround) ที่เข้าเกณฑ์ ทางเลือกที่ทำได้จึงเป็นการปิด nested virtualization หากไม่จำเป็น และบนระบบอย่าง RHEL 10 ที่เปิด /dev/kvm ให้ผู้ใช้ทุกคน ควรพิจารณาจำกัดสิทธิ์การเข้าถึงอุปกรณ์ดังกล่าวเพื่อลดความเสี่ยงการยกระดับสิทธิ์จากผู้ใช้ภายในเครื่อง
