ช่องโหว่ใน libinput ที่นำไปสู่การเรียกใช้โค้ดเมื่อมีการเชื่อมต่ออุปกรณ์ที่เป็นอันตราย

ไลบรารี libinput 1.20.1 ซึ่งจัดเตรียมสแต็กอินพุตแบบรวมที่ช่วยให้คุณใช้วิธีการประมวลผลเหตุการณ์แบบเดียวกันจากอุปกรณ์อินพุตในสภาพแวดล้อมที่ใช้ Wayland และ X.Org ได้ขจัดช่องโหว่ (CVE-2022-1215) ซึ่ง ช่วยให้คุณสามารถจัดระเบียบการดำเนินการโค้ดของคุณเมื่อเชื่อมต่ออุปกรณ์อินพุตที่ได้รับการดัดแปลง/จำลองเป็นพิเศษเข้ากับระบบ ปัญหาแสดงออกมาในสภาพแวดล้อมที่ใช้ X.Org และ Wayland และสามารถใช้ประโยชน์ได้ทั้งเมื่อเชื่อมต่ออุปกรณ์ในเครื่องและเมื่อจัดการอุปกรณ์ด้วยอินเทอร์เฟซ Bluetooth หากเซิร์ฟเวอร์ X ทำงานในฐานะรูท ช่องโหว่จะทำให้โค้ดสามารถดำเนินการด้วยสิทธิ์ระดับสูงได้

ปัญหาเกิดจากข้อผิดพลาดในการจัดรูปแบบบรรทัดในโค้ดที่รับผิดชอบในการส่งข้อมูลการเชื่อมต่ออุปกรณ์ไปยังบันทึก โดยเฉพาะอย่างยิ่ง ฟังก์ชัน evdev_log_msg ที่ใช้การเรียก snprintf เปลี่ยนสตริงรูปแบบดั้งเดิมของรายการบันทึก ซึ่งมีการเพิ่มชื่ออุปกรณ์เป็นคำนำหน้า ถัดไป สตริงที่แก้ไขจะถูกส่งผ่านไปยังฟังก์ชัน log_msg_va ซึ่งจะใช้ฟังก์ชัน printf ตามลำดับ ดังนั้น อาร์กิวเมนต์แรกที่จะ printf ซึ่งใช้การแยกวิเคราะห์อักขระในรูปแบบ มีข้อมูลภายนอกที่ไม่ได้รับการตรวจสอบ และผู้โจมตีสามารถเริ่มต้นความเสียหายของสแต็กโดยทำให้อุปกรณ์ส่งคืนชื่อที่มีอักขระรูปแบบสตริง (เช่น "Evil %s") .

ที่มา: opennet.ru

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