ช่องโหว่ใน sudo ที่อนุญาตให้มีการเพิ่มระดับสิทธิ์เมื่อใช้กฎเฉพาะ

ในด้านอรรถประโยชน์ sudoใช้เพื่อจัดระเบียบการดำเนินการคำสั่งในนามของผู้ใช้รายอื่น ระบุ จุดอ่อน (CVE-2019-14287) ซึ่งช่วยให้คุณดำเนินการคำสั่งด้วยสิทธิ์รูทหากมีกฎในการตั้งค่า sudoers ซึ่งในส่วนการตรวจสอบ ID ผู้ใช้หลังจากคีย์เวิร์ดอนุญาต "ทั้งหมด" มีข้อห้ามอย่างชัดเจนในการทำงานด้วยสิทธิ์รูท (“... (ทั้งหมด, !root) ..." ) ช่องโหว่ไม่ปรากฏในการกำหนดค่าเริ่มต้นในการแจกแจง

หาก sudoers มีกฎที่ถูกต้องแต่พบได้น้อยมากในทางปฏิบัติที่อนุญาตให้ดำเนินการคำสั่งบางอย่างภายใต้ UID ของผู้ใช้อื่นที่ไม่ใช่ root ผู้โจมตีที่มีอำนาจดำเนินการคำสั่งนี้สามารถข้ามข้อจำกัดที่กำหนดไว้และดำเนินการคำสั่งด้วย สิทธิ์รูท หากต้องการข้ามข้อ จำกัด เพียงลองดำเนินการคำสั่งที่ระบุในการตั้งค่าด้วย UID“ -1” หรือ“ 4294967295” ซึ่งจะนำไปสู่การดำเนินการด้วย UID 0

ตัวอย่างเช่น หากมีกฎในการตั้งค่าที่ให้สิทธิ์ผู้ใช้ในการรันโปรแกรม /usr/bin/id ภายใต้ UID ใดๆ:

myhost ALL = (ทั้งหมด, !root) /usr/bin/id

หรือตัวเลือกที่อนุญาตให้ดำเนินการเฉพาะกับผู้ใช้ Bob ที่ระบุเท่านั้น:

myhost bob = (ทั้งหมด, !root) /usr/bin/id

ผู้ใช้สามารถดำเนินการ “sudo -u '#-1' id” และยูทิลิตี้ /usr/bin/id จะเปิดตัวในฐานะรูท แม้ว่าจะมีข้อห้ามอย่างชัดเจนในการตั้งค่าก็ตาม ปัญหาเกิดจากการมองข้ามค่าพิเศษ “-1” หรือ “4294967295” ซึ่งไม่ทำให้เกิดการเปลี่ยนแปลงใน UID แต่เนื่องจาก sudo เองทำงานเป็น root อยู่แล้ว โดยไม่ต้องเปลี่ยน UID คำสั่งเป้าหมายก็เช่นกัน เปิดตัวด้วยสิทธิ์รูท

ในการแจกแจง SUSE และ openSUSE โดยไม่ระบุ “NOPASSWD” ในกฎ มีช่องโหว่ ไม่สามารถหาประโยชน์ได้เนื่องจากใน sudoers โหมด "Defaults targetpw" จะถูกเปิดใช้งานตามค่าเริ่มต้น ซึ่งจะตรวจสอบ UID กับฐานข้อมูลรหัสผ่านและแจ้งให้คุณป้อนรหัสผ่านของผู้ใช้เป้าหมาย สำหรับระบบดังกล่าว การโจมตีสามารถทำได้ก็ต่อเมื่อมีกฎในรูปแบบ:

myhost ALL = (ทั้งหมด, !root) NOPASSWD: /usr/bin/id

ปัญหาได้รับการแก้ไขในการเปิดตัว ซูโด้ 1.8.28. การแก้ไขยังมีอยู่ในแบบฟอร์ม ปะ. ในชุดการแจกจ่าย ช่องโหว่ได้รับการแก้ไขแล้ว debian, Arch ลินุกซ์, SUSE/เปิดSUSE, อูบุนตู, Gentoo и FreeBSD. ในขณะที่เขียนปัญหายังคงไม่ได้รับการแก้ไข RHEL и Fedora. ช่องโหว่นี้ถูกระบุโดยนักวิจัยด้านความปลอดภัยจาก Apple

ที่มา: opennet.ru

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