Một lỗ hổng bảo mật nghiêm trọng đã được phát hiện trong mô-đun sandbox JavaScript vm2 , được sử dụng để chạy mã không đáng tin cậy trong các môi trường bị cô lập trên Node.js. Với gần bốn triệu lượt tải xuống hàng tuần và được tích hợp vào 721 gói, lỗ hổng này có khả năng ảnh hưởng đến số lượng lớn các nhà phát triển và ứng dụng. CVE-2023-30547 ( được xếp hạng 9,8 trên hệ thống chấm điểm CVSS) có thể cho phép kẻ tấn công vượt ra khỏi ranh giới bảo mật và thực thi các shellcode tùy ý.
Lỗ hổng nằm trong quá trình xử lý ngoại lệ của vm2. Khi hàm handleException() tiến hành xử lý sẽ dẫn đến lỗi cho phép tin tặc qua mặt được sandbox và chạy mã tùy ý trong môi trường máy chủ. Đối với Catchclause với ObjectPattern, mã gọi handleException() và sau đó ném lại ngoại lệ đã xử lý bên trong một try-catch lồng nhau.
Nhà nghiên cứu bảo mật KAIST Seongil Wi đã cung cấp (PoC) cho lỗ hổng CVE-2023-30547.
Việc khai thác lỗ hổng này có thể dẫn đến Thực thi mã từ xa, giả sử kẻ tấn công có nguyên mẫu thực thi mã tùy ý bên trong ngữ cảnh của hộp cát vm2. Do đó, điều quan trọng là người dùng phải cập nhật mô-đun vm2 của họ lên phiên bản 3.9.17 trở lên để giảm thiểu rủi ro thực thi mã từ xa.