มีการค้นพบช่องโหว่ Critical sandbox escape ในไลบรารี vm2 ของ Node.js ซึ่งเป็นไลบรารีที่ใช้กันอย่างแพร่หลายในการสร้างสภาพแวดล้อม Sandbox สำหรับรันโค้ดที่ไม่น่าเชื่อถือ ช่องโหว่นี้มีรหัส CVE-2026-22709 (GHSA-99p7-6v5w-7xg8) มีคะแนน CVSS v3.1 อยู่ที่ 10.0 ซึ่งแสดงถึงความรุนแรงสูงสุด และส่งผลกระทบต่อทุกเวอร์ชันจนถึง 3.10.0 ทำให้ผู้โจมตีสามารถหลุดพ้นจาก Sandbox และรันโค้ดบนระบบโฮสต์ได้โดยพลการ

     

Severity: วิกฤต

      
     

System Impact:

     

  • ไลบรารี vm2 Sandbox สำหรับ Node.js
  • ระบบโฮสต์พื้นฐาน
  • ระบบที่ถูกบุกรุก

      
     

Technical Attack Steps:

     

  1. ช่องโหว่เกิดจากการ sanitization callback ที่ไม่สมบูรณ์ในการจัดการ Promise prototype
  2. โดยเฉพาะอย่างยิ่ง `globalPromise.prototype.then` ไม่ได้รับการ sanitization ในขณะที่ `localPromise.prototype.then` ได้รับ
  3. ฟังก์ชัน asynchronous จะคืนค่าเป็น `global Promise objects` แทนที่จะเป็น `local ones` ทำให้ผู้โจมตีสามารถเลี่ยงผ่านข้อจำกัดของ Sandbox ได้
  4. ผู้โจมตีสามารถใช้การจัดการ `error stack` เพื่อควบคุม `Promise.prototype.catch callbacks`
  5. ด้วยการสร้างอ็อบเจกต์ข้อผิดพลาดที่มีชื่อเชิงสัญลักษณ์และเรียกใช้ฟังก์ชัน async ผู้โจมตีจะเข้าถึง `Error constructor` และสามารถรันโค้ดได้ตามอำเภอใจผ่าน `Function constructor`
  6. ในการสาธิต Proof-of-Concept ผู้โจมตีสามารถรันคำสั่งระบบ เช่น `execSync()` ผ่านโมดูล `child_process` ได้สำเร็จ เป็นการหลบเลี่ยงการแยก Sandbox โดยสมบูรณ์

      
     

Recommendations:

     

Short Term:

     

  • อัปเกรดเป็น vm2 เวอร์ชัน 3.10.2 หรือใหม่กว่าทันที
  • ทำการประเมินรายการสินทรัพย์ (inventory assessments) ในสภาพแวดล้อมการพัฒนาและโปรดักชันทันทีเพื่อระบุการติดตั้งที่ได้รับผลกระทบ
  • ปรับใช้เวอร์ชัน 3.10.2 ผ่าน pipeline การจัดการแพ็คเกจโดยไม่ชักช้า และตรวจสอบว่าไม่มีอินสแตนซ์ที่ใช้งานจริงที่ยังคงใช้เวอร์ชันที่มีช่องโหว่

     

Long Term:

     

  • พิจารณาจำกัดการใช้งาน vm2 Sandbox ให้รันเฉพาะโค้ดที่น่าเชื่อถือเท่านั้น

      
     

Source: https://cybersecuritynews.com/vm2-sandbox-vulnerability/

   

Share this content:

Leave a Reply

Your email address will not be published. Required fields are marked *