รู้จัก “Dirty Sock” ช่องโหว่ยกระดับสิทธิ์ (Privilege Escalation) บน Linux (CVE-2019-7304)

สรุปย่อ

เมื่อช่วงกลางเดือนกุมภาพันธ์ที่ผ่านมา Canonical บริษัทผู้พัฒนา Ubuntu ได้ปล่อยแพตช์เพื่อแก้ไขช่องโหว่ที่ได้รับชื่อเรียกว่า Dirty Sock ค้นพบโดย Chris Moberly นักวิจัยจาก Shenanigans Labs ช่องโหว่ไม่ได้เป็นปัญหาของระบบปฏิบัติการ Linux โดยตรง แต่เป็นปัญหาในส่วนของ service ที่มีชื่อว่า Snapd ซึ่งถูกติดตั้งเป็น service พื้นฐานบนระบบปฎิบัติการ Linux หลายตัว เช่น Ubuntu, Debian, Arch Linux, OpenSUSE. Solus และ Fedora ถูกใช้เพื่อจัดการเกี่ยวกับการดาวโหลดและติดตั้งไฟล์ที่เป็น snaps (.snap) แพ็กเกจ ส่งผลให้ผู้ไม่หวังดีสามารถสร้างบัญชีที่มีสิทธิ์ระดับ root (Privilege Escalation) บนเครื่องได้ ผ่านช่องโหว่ใน API ของ Snapd

(ที่มา: https://www.cyberkendra.com)

รายละเอียดการทดสอบช่องโหว่

การทำงานโดยปกติของ Snapd service และอีกหลายๆ บริการบน Linux จะมีการสร้าง socket ขึ้นมาเพื่อใช้ในการติดต่อกับระหว่างโปรเซสอื่นๆ ภายในเครื่อง (AF_UNIX Socket) หรือใช้สำหรับติดต่อกับเครื่องอื่นๆ (AF_INET Socket) Chris Moberly ได้ทำการทดสอบช่องโหว่ดังกล่าวบน Ubuntu จากตำแหน่งของ Snapd service (/lib/systemd/system/snapd.service) บนเครื่อง พบว่ามีการเรียกใช้งาน socket ทั้งหมด 2 รายการด้วยกัน คือ /run/snapd.socket และ /run/snapd-snap.socket ซึ่งทั้ง 2 รายการได้สิทธิ์เป็น root บนระบบปฏิบัติการ