ช่องโหว่ที่ช่วยให้คุณสามารถแยกออกจากสภาพแวดล้อมที่แยกจาก QEMU ได้

เปิดเผย รายละเอียดช่องโหว่ที่สำคัญ (CVE-2019-14378) ในตัวจัดการ SLIRP เริ่มต้นที่ใช้ใน QEMU เพื่อสร้างช่องทางการสื่อสารระหว่างอะแดปเตอร์เครือข่ายเสมือนในระบบเกสต์และแบ็กเอนด์เครือข่ายทางฝั่ง QEMU ปัญหานี้ยังส่งผลกระทบต่อระบบการจำลองเสมือนที่ใช้ KVM (ใน โหมดผู้ใช้) และ Virtualbox ซึ่งใช้แบ็กเอนด์ slirp จาก QEMU รวมถึงแอปพลิเคชันที่ใช้สแต็กเครือข่ายพื้นที่ผู้ใช้ libSLIRP (โปรแกรมจำลอง TCP/IP)

ช่องโหว่นี้ทำให้สามารถรันโค้ดบนฝั่งระบบโฮสต์ด้วยสิทธิ์ของกระบวนการจัดการ QEMU เมื่อมีการส่งแพ็กเก็ตเครือข่ายขนาดใหญ่ที่ออกแบบมาเป็นพิเศษจากระบบเกสต์ ซึ่งต้องมีการแยกส่วน เนื่องจากข้อผิดพลาดในฟังก์ชัน ip_reass() ซึ่งเรียกว่าเมื่อประกอบแพ็กเก็ตขาเข้าอีกครั้ง แฟรกเมนต์แรกอาจไม่พอดีกับบัฟเฟอร์ที่จัดสรร และส่วนท้ายของมันถูกเขียนลงในพื้นที่หน่วยความจำถัดจากบัฟเฟอร์

สำหรับการทดสอบแล้ว ใช้ได้ ต้นแบบการทำงานของการหาประโยชน์ ซึ่งจัดให้มีการข้าม ASLR และเรียกใช้โค้ดโดยเขียนทับหน่วยความจำของอาร์เรย์ main_loop_tlg รวมถึง QEMUTimerList พร้อมตัวจัดการที่เรียกโดยตัวจับเวลา
ช่องโหว่ได้รับการแก้ไขแล้ว Fedora и SUSE/เปิดSUSEแต่ยังคงไม่ได้รับการแก้ไขใน debian, Arch ลินุกซ์ и FreeBSD. ใน อูบุนตู и RHEL ปัญหาไม่ปรากฏเนื่องจากไม่ได้ใช้สลิป ช่องโหว่ยังคงไม่ได้รับการแก้ไขในรุ่นล่าสุด ลิบสลิร์ป 4.0 (ปัจจุบันมีการแก้ไขเป็น ปะ).

ที่มา: opennet.ru

เพิ่มความคิดเห็น