StackRot ช่องโหว่ใหม่ใน Linux kernel ที่ทำให้ผู้โจมตีสามารถยกระดับสิทธิ์ได้

Ruihan Li นักวิจัยด้านความปลอดภัยรายงานช่องโหว่ StackRot (CVE-2023-3269) ซึ่งเป็นช่องโหว่ระดับความรุนแรงสูง ที่ส่งผลกระทบต่อ Linux kernel หลายเวอร์ชัน และสามารถเรียกใช้งานได้ง่าย เพื่อโจมตี kernel และยกระดับสิทธิ์ โดยในขณะนี้แพตซ์อัปเดตเพื่อแก้ไขช่องโหว่ดังกล่าวได้ถูกปล่อยออกมาแล้วตั้งแต่วันที่ 1 กรกฎาคม 2023 รวมถึงรายละเอียดที่เกี่ยวข้องกับช่องโหว่ และ exploit code จะถูกเปิดเผยภายในสิ้นเดือนนี้

StackRot (CVE-2023-3269 คะแนน CVSS 7.8/10 ระดับความรุนแรงสูง) เป็นช่องโหว่ที่ส่งผลกระทบต่อระบบย่อยของ kernel memory management ซึ่งเป็นส่วนประกอบที่รับผิดชอบเกี่ยวกับการใช้หน่วยความจำเสมือน และการทำ demand paging การจัดสรรหน่วยความจำสำหรับความต้องการของ kernel และ user space program เช่นเดียวกับการแมปไฟล์ไปยัง process address space โดยช่องโหว่ StackRot ส่งผลกระทบต่อ kernel configuration ทั้งหมดบน Linux เวอร์ชัน 6.1 ถึง 6.4

StackRot

StackRot เกิดขึ้นจากการจัดการการขยาย stack ของ Linux kernel ภายในระบบย่อยการจัดการหน่วยความจำ ซึ่งเชื่อมโยงกับการจัดการพื้นที่หน่วยความจำเสมือน virtual memory areas (VMA) โดยช่องโหว่อยู่ที่ "maple tree" ซึ่งเป็นระบบโครงสร้างข้อมูลใหม่สำหรับ VMA ที่เปิดตัวใน Linux kernel 6.1 ซึ่งมาแทนที่ "red-black trees" และใช้กลไกการ read-copy-update (RCU)

ช่องโหว่นี้เป็นปัญหา use-after-free (UAF) ที่เกิดจากวิธีจัดการ stack expansion เนื่องจาก maple tree สามารถแทนที่โหนดได้โดยไม่ต้องล็อคการเขียน memory management (MM) ทำให้เมื่อ Linux kernel ทำการ ขยาย stack และลบช่องว่างระหว่าง VMA โหนดใหม่จะถูกสร้างขึ้นใน "maple tree" ทำให้โหนดเก่าจะถูกทำเครื่องหมายเพื่อลบหลังจากการอ่านปัจจุบันเสร็จสิ้น เนื่องจากความปลอดภัยของ RCU ของ maple tree ซึ่งในช่วงระยะเวลาผ่อนผันของ RCU อาจทำให้เกิดปัญหา use-after-free (UAF) หลังการเข้าถึงโหนดเก่า ทำให้สามารถสร้าง context เพื่อยกระดับสิทธิ์ได้

PoC กำลังจะถูกปล่อยออกมา

Ruihan Li ตั้งข้อสังเกตว่าการโจมตีโดยใช้ช่องโหว่ StackRot (CVE-2023-3269) มีความน่าสนใจ และอาจเป็นตัวอย่างแรกของช่องโหว่ Use-after-free-by-RCU (UAFBR) ที่ใช้โจมตีได้ในทางทฤษฎี

ทั้งนี้นักวิจัยได้ประกาศแผนการที่จะเปิดเผยรายละเอียดทางเทคนิคทั้งหมดเกี่ยวกับ StackRot และการสาธิตการโจมตี proof-of-concept (PoC) ภายในสิ้นเดือนกรกฎาคมนี้

Linux kernel 6.1 ได้รับการอนุมัติให้เป็นเวอร์ชันการสนับสนุนระยะยาว Long-term support (LTS) version ตั้งแต่เดือนกุมภาพันธ์ 2023

ทั้งนี้ผู้ใช้งานควรตรวจสอบ kernel version ของ Linux distro ที่รันอยู่ และเลือกเวอร์ชันที่ไม่ได้รับผลกระทบจากช่องโหว่ StackRot หรือทำการอัปเดตไปยังเวอร์ชันที่ได้รับการแก้ไขช่องโหว่แล้ว

 

ที่มา : bleepingcomputer