ช่องโหว่ใน systemd ที่อาจทำให้คุณเพิ่มสิทธิ์ของคุณได้

ในตัวจัดการระบบ systemd ระบุ ช่องโหว่ (CVE-2020-1712) ซึ่งอาจช่วยให้คุณสามารถรันโค้ดของคุณด้วยสิทธิ์ระดับสูงโดยการส่งคำขอที่ออกแบบมาเป็นพิเศษผ่านบัส DBus ปัญหาได้รับการแก้ไขแล้วในรุ่นทดสอบ systemd245-rc1 (แพทช์ที่ช่วยแก้ปัญหา: 1, 2, 3). ช่องโหว่ได้รับการแก้ไขแล้วในการแจกแจง อูบุนตู, Fedora, RHEL (ปรากฏใน RHEL 8 แต่ไม่ส่งผลต่อ RHEL 7) CentOS и SUSE/เปิดSUSEแต่ในขณะที่เขียนข่าวนั้นยังไม่ได้รับการแก้ไขค่ะ debian и Arch ลินุกซ์.

ช่องโหว่นี้เกิดจากการเข้าถึงพื้นที่หน่วยความจำที่ว่างอยู่แล้ว (ใช้งานหลังจากฟรี) ซึ่งเกิดขึ้นเมื่อดำเนินการคำขอไปยัง Polkit แบบอะซิงโครนัสขณะประมวลผลข้อความ DBus อินเทอร์เฟซ DBus บางตัวใช้แคชเพื่อจัดเก็บอ็อบเจ็กต์ในช่วงเวลาสั้น ๆ และล้างรายการแคชทันทีที่บัส DBus มีอิสระในการประมวลผลคำขออื่น ๆ หากตัวจัดการวิธี DBus ใช้ bus_verify_polkit_async() อาจต้องรอให้การดำเนินการ Polkit เสร็จสิ้น หลังจากที่ Polkit พร้อมแล้ว ตัวจัดการจะถูกเรียกอีกครั้งและเข้าถึงข้อมูลที่กระจายอยู่ในหน่วยความจำแล้ว หากการร้องขอไปยัง Polkit ใช้เวลานานเกินไป รายการในแคชจะถูกล้างก่อนที่จะเรียกตัวจัดการวิธี DBus เป็นครั้งที่สอง

ในบรรดาบริการที่อนุญาตให้มีการใช้ประโยชน์จากช่องโหว่นั้นมีการระบุ systemd-machined ซึ่งให้ DBus API org.freedesktop.machine1.Image.Clone ซึ่งนำไปสู่การจัดเก็บข้อมูลชั่วคราวในแคชและการเข้าถึง Polkit แบบอะซิงโครนัส อินเตอร์เฟซ
org.freedesktop.machine1.Image.Clone พร้อมใช้งานสำหรับผู้ใช้ระบบที่ไม่มีสิทธิพิเศษทั้งหมด ซึ่งอาจขัดข้องบริการ systemd หรืออาจทำให้โค้ดถูกเรียกใช้ในฐานะรูท (ยังไม่ได้สาธิตต้นแบบการหาประโยชน์) รหัสที่อนุญาตให้มีการใช้ประโยชน์จากช่องโหว่คือ เพิ่ม ใน systemd-machined ในเวอร์ชัน 2015 systemd 220 (RHEL 7.x ใช้ systemd 219)

ที่มา: opennet.ru

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