Proof of concept (POC) exploit code ของช่องโหว่ที่มีระดับ critical ในไลบรารียอดนิยม 'VM2' JavaScript sandbox ซึ่งถูกนำไปใช้ในซอฟต์แวร์จำนวนมากเพื่อความปลอดภัยสำหรับการทำงานแบบ virtualized
โดยไลบรารีดังกล่าวออกแบบมาเพื่อทดสอบโค้ดที่อาจไม่น่าเชื่อถือ บนเซิร์ฟเวอร์แยกของ Node.js โดยจะอนุญาตให้คำสั่งทำงานได้บางส่วน เพื่อป้องกันการเข้าถึงทรัพยากรของระบบ หรือข้อมูลภายนอกโดยไม่ได้รับอนุญาต
VM2 เป็น sandbox ของ Node.js ที่ได้รับความนิยมอย่างแพร่หลาย โดยมีจำนวนการดาวน์โหลดต่อเดือนมากกว่า 16 ล้านครั้ง ผ่านทาง NPM package repository และถูกใช้โดย integrated development environments (IDEs) , code editors , function-as-a-service (FaaS) solutions, pen-testing frameworks, security tools และซอฟต์แวร์ที่เกี่ยวข้องกับภาษา JavaScript
ช่องโหว่ระดับ critical
- CVE-2023-29017 (CVSS : 10.0) ถูกพบโดยทีมนักวิจัยที่สถาบันเทคโนโลยี และวิทยาศาสตร์ขั้นสูงของเกาหลีใต้ (KAIST) ซึ่งปัจจุบันได้รับการแก้ไขเรียบร้อยแล้ว
- นักวิจัยพบไลบรารี VM2 ไม่ได้จัดการกับ object ของโฮสต์ที่ถูกส่งผ่านไปยังฟังก์ชัน 'Error.prepareStackTrace' อย่างถูกต้อง เมื่อเกิด asynchronous error
- ช่องโหว่นี้ส่งผลให้ผู้โจมตีสามารถหลีกเลี่ยงการตรวจจับการป้องกันของ sandbox และสามารถรันโค้ดที่เป็นอันตรายจากระยะไกลบนเครื่องของเหยื่อที่ใช้งาน sandbox โดยไม่ได้รับอนุญาต
- ช่องโหว่นี้ส่งผลกระทบต่อ VM2 ทุกเวอร์ชัน ตั้งแต่เวอร์ชัน 3.9.14 และเวอร์ชันที่ต่ำกว่า ซึ่งช่องโหว่นี้ได้รับการแก้ไขในเวอร์ชัน 3.9.15
การใช้ประโยชน์จากช่องโหว่
- หลังจากที่ไลบรารี VM2 ได้ปล่อยเวอร์ชันที่ถูกแก้ไขช่องโหว่ออกมาแล้ว นักศึกษาปริญญาเอกของ KAIST ชื่อ Seongil Wi ได้เผยแพร่ Exploit 2 รูปแบบ สำหรับช่องโหว่ CVE-2023-29017 บน GitHub repository ในรูปแบบ private
- PoCs ที่ถูกเผยแพร่ เพียงแค่สร้างไฟล์ใหม่ชื่อ 'flag' บนระบบโฮสต์ ผู้โจมตีสามารถหลีกเลี่ยงการตรวจจับจาก sandbox ของ VM2 เพื่อให้สามารถสร้างไฟล์บนระบบโฮสต์ได้
- ครั้งก่อนในเดือนตุลาคม 2022 เคยมีการพบช่องโหว่ของ VM2 หมายเลข CVE-2022-36067 ซึ่งเป็นช่องโหว่ที่ทำให้ผู้โจมตีสามารถหลีกเลี่ยงการตรวจจับของ sandbox และรันคำสั่งบนระบบโฮสต์ได้ ซึ่งช่องโหว่ดังกล่าวก็ได้รับการแก้ไขเรียบร้อยเเล้วเช่นเดียวกัน
ที่มา : https://www.bleepingcomputer.com
You must be logged in to post a comment.