ในตัวจัดการระบบ systemd
ช่องโหว่นี้เกิดจากการเข้าถึงพื้นที่หน่วยความจำที่ว่างอยู่แล้ว (ใช้งานหลังจากฟรี) ซึ่งเกิดขึ้นเมื่อดำเนินการคำขอไปยัง 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 หรืออาจทำให้โค้ดถูกเรียกใช้ในฐานะรูท (ยังไม่ได้สาธิตต้นแบบการหาประโยชน์) รหัสที่อนุญาตให้มีการใช้ประโยชน์จากช่องโหว่คือ
ที่มา: opennet.ru