ส่วนประกอบการจำลองเสมือน KVM ของ Linux ก่อนหน้านี้สามารถอนุญาตให้แขกเครื่องเสมือนอาศัยการจำลองเสมือน AMD SVM เพื่อแยกออกเป็นโฮสต์ ข้อบกพร่องนี้ยังคงอยู่ในเคอร์เนลของ Linux ตั้งแต่ปลายปี 2020 ถึงมีนาคม 2021 ก่อนที่จะได้รับการแก้ไข และเป็นปัญหาที่ทราบปัญหาแรกของการฝ่าวงล้อม guest-to-host ที่ไม่ได้ขึ้นอยู่กับข้อบกพร่องภายในส่วนประกอบพื้นที่ผู้ใช้
โครงการ Project Zero ของ Google ได้เผยแพร่กรณีศึกษาเกี่ยวกับปัญหาการแบ่งกลุ่มจากแขกสู่โฮสต์ ช่องโหว่นี้ไม่ได้เกิดจากปัญหากับโปรเซสเซอร์ AMD EPYC แต่เป็นข้อบกพร่องที่อยู่ภายในโค้ดแบ็คเอนด์ AMD ที่ใช้ Kernel (KVM) ของ AMD เกี่ยวกับการจัดการการจำลองเสมือนแบบซ้อนของ SVM
อ่านกรณีศึกษาฉบับเต็มได้ที่ บล็อกของ Google และเป็นข้อมูลทางเทคนิคที่น่าสนใจสำหรับทุกคนที่สนใจในเรื่องนี้อย่างละเอียด
Linux 5.10 และ 5.11 เดิมได้รับผลกระทบจากช่องโหว่นี้ซึ่งถูกติดตามเป็น CVE-2021-29657 ก่อนที่จะได้รับการแก้ไขในช่วงปลายรอบ Linux 5.12 และการแก้ไขถูกพอร์ตย้อนกลับไปยังรุ่นก่อนหน้านั้น นี่เป็นเรื่องลำบากเมื่อพิจารณาว่าผู้ให้บริการคลาวด์รายใหญ่ส่วนใหญ่ต้องพึ่งพา KVM แต่อย่างน้อยจุดบกพร่องนั้นมีอายุสั้นภายในเคอร์เนลและเป็นเพียงข้อบกพร่องของซอฟต์แวร์ ในกรณีนี้ โครงสร้างพื้นฐานสาธารณะ/คลาวด์ที่โชคดีอย่างหนึ่งไม่ได้เปลี่ยนเคอร์เนลใหม่เร็วเกินไป รุ่น
โพสต์ลงท้ายด้วย”โพสต์ในบล็อกนี้อธิบายถึง KVM-only VM Escape ที่เกิดขึ้นจากจุดบกพร่องเล็กๆ ในโค้ดเฉพาะ AMD ของ KVM เพื่อรองรับการจำลองเสมือนที่ซ้อนกัน โชคดีที่ฟีเจอร์นี้ ข้อผิดพลาดที่เกิดจากช่องโหว่นั้นรวมอยู่ในเคอร์เนลสองเวอร์ชันเท่านั้น (v5.10, v5.11) ก่อนที่จะตรวจพบปัญหา ซึ่งช่วยลดผลกระทบในชีวิตจริงของช่องโหว่ให้เหลือน้อยที่สุด ช่องโหว่ด้านความปลอดภัยยังคงมีอยู่ในแกนหลักของ Virtualization Engine ซึ่งเกือบจะแน่นอนว่าเป็น codebase ที่มีขนาดเล็กและได้รับการตรวจสอบอย่างดี แม้ว่าพื้นผิวการโจมตีของไฮเปอร์ไวเซอร์ เช่น KVM จะค่อนข้างเล็กจากมุมมองของ LoC ล้วนๆ แต่ลักษณะระดับต่ำก็ใกล้เคียง การโต้ตอบกับฮาร์ดแวร์และความซับซ้อนล้วนทำให้ยากต่อการหลีกเลี่ยงจุดบกพร่องที่มีความสำคัญต่อความปลอดภัย”
วิศวกรของ Google ที่เกี่ยวข้องเรียกร้องให้มีการลงทุนมากขึ้นในด้านความสามารถในการตรวจจับและการแยกโฮสต์ VM ที่ดียิ่งขึ้น โชคดีที่แม้ว่าช่องโหว่ของซอฟต์แวร์นี้ไม่ได้ถูกนำเสนอโดยวิศวกรของ AMD แต่ AMD ได้รับ จ้างวิศวกรซอฟต์แวร์ Linux เพิ่มขึ้นในช่วงไม่กี่เดือนที่ผ่านมา และพวกเขายังคงเปิดตำแหน่งใหม่ ซึ่งรวมถึงในด้านการจำลองเสมือน เนื่องจากพวกเขายังคงปรับปรุงการรองรับซอฟต์แวร์ Linux โดยรวมต่อไป