ช่องโหว่ CVE-2024-26218 เกิดจาก Stack Buffer Overflow บนฟังก์ชันของ Windows Kernel ชื่อ PspBuildCreateProcessContext เกี่ยวข้องกับลำดับการสร้างกระบวนการ ช่องโหว่นี้ ถูกกระตุ้นโดยเงื่อนไขการดึงข้อมูลซ้ำซ้อนในขั้นตอนที่ Kernel ดึงข้อมูลที่ผู้ใช้ระบุอย่างไม่ถูกต้องมากกว่าหนึ่งครั้ง ทำให้ผู้ไม่ประสงค์ดีสามารถเปลี่ยนแปลงข้อมูลระหว่างการดึงข้อมูลได้ ซึ่งทาง Microsoft ได้แก้ไขช่องโหว่ดังกล่าวด้วยการอัปเดตแพตช์ประจำเดือนเมษายน 2024
Kirkpatrick ได้แชร์ข้อมูลทางเทคนิคโดยละเอียดของช่องโหว่ CVE-2024-26218 พร้อมด้วย PoC บน GitHub เพื่อสาธิตการใช้ประโยชน์และเพื่อให้ความรู้ด้าน Cybersecurity เกี่ยวกับความเสี่ยงและเทคนิคในการลดความเสี่ยง ตามข้อมูลด้านล่างนี้:
•ช่องโหว่ Double-Fetch: ฟังก์ชัน PspBuildCreateProcessContext มีหน้าที่การจัดการ Attributes ของกระบวนการที่กำลังถูกสร้าง โดยส่งผ่าน syscall NtCreateUserProcess ซึ่งเกี่ยวข้องกับการประมวลผล PS_ATTRIBUTE_LIST ที่เป็น Array ของโครงสร้าง PS_ATTRIBUTE
•การแก้ไขและ Overflow: เมื่อจัดการกับ Attributes ชื่อ PsAttributeMitigationOptions และ PsAttributeMitigationAuditOptions แล้วนั้น ฟังก์ชันจะดึง Size field ของโครงสร้าง PS_ATTRIBUTE เป็นจำนวนสองครั้ง หากผู้ไม่ประสงค์ดีเปลี่ยนแปลงค่าระหว่างการดึงข้อมูลเหล่านี้ อาจะส่งผลให้เกิดการรั่วไหลของ Stack Buffer Overflow ได้
ช่องโหว่ CVE-2024-26218 ได้รับคะแนนความรุนแรงสูงถึง 7.8 เนื่องจากการอนุญาตให้ผู้ใช้ที่ได้รับ การรับรองความถูกต้องสามารถดำเนินการเรียกใช้โค้ดอย่างอิสระด้วยสิทธิ์ระดับสูง ซึ่งผู้ไม่ประสงค์ดีที่ใช้ประโยชน์จากจากช่องโหว่นี้ หากโจมตีสำเร็จอาจได้รับสิทธิ์ SYSTEM
คำแนะนำ
-ควรกำหนดสิทธิ์ของผู้ใช้ในระบบในการเข้าถึงข้อมูลและโครงสร้าง
-ควรอัพเดตระบบปฏิบัติการ Windows ให้เป็นเวอร์ชันล่าสุด
-ควรใช้ซอฟต์แวร์ Anti-Virus ที่มีคุณสมบัติในการตรวจจับและป้องกันการโจมตีจากโค้ดที่ไม่ได้รับอนุญาต
Ref: https://securityonline.info/researcher-releases-poc-exploit-for-windows-kernel-eop-vulnerability-cve-2024-26218/