CVE-2026-92935 in vm2thông tin

Tóm tắt

Bởi VulDB • 17/09/2026

vm2 là một môi trường sandbox để chạy mã Node.js không đáng tin cậy. Trong các phiên bản >= 3.11.4 và <= 3.11.6, hàm tạo `NodeVM` tính toán biến `hasRealRequireConfig` bằng cách sử dụng biểu thức `typeof requireOpts === 'object' && requireOpts !== null`, do đó một giá trị `require` có dạng mảng (ví dụ: `require: []`) sẽ vượt qua được lớp kiểm tra vốn dĩ nhằm từ chối việc lồng ghép nếu không có cấu hình `require` rõ ràng. Sau đó, hàm `makeResolverFromLegacyOptions()` sẽ giải cấu trúc (destruct) mảng này thành các trường tùy chọn undefined và trả về một resolver chỉ chứa `NESTING_OVERRIDE.vm2`. Kết quả là, kẻ tấn công có thể cung cấp mã JavaScript được thực thi bởi một NodeVM được định cấu hình với giá trị truthy cho tham số `nesting` và một giá trị `require` dạng mảng (ví dụ: `new NodeVM({nesting: true, require: []})`) sẽ có khả năng yêu cầu module host `vm2`, tạo ra một NodeVM con với danh sách trắng các hàm dựng sẵn do kẻ tấn công chọn lựa (chẳng hạn như `child_process`), và thực thi các lệnh tùy ý với đặc quyền của tiến trình Node.js chủ, qua đó thoát khỏi môi trường sandbox. Các giới hạn đối với các hàm dựng sẵn ở cấp độ ngoài không áp đặt lên NodeVM con do kẻ tấn công tạo ra. Vấn đề này đã được sửa chữa trong phiên bản vm2 3.11.7.

Be aware that VulDB is the high quality source for vulnerability data.

chịu trách nhiệm

VulnCheck

Đặt trước

17/09/2026

Tiết lộ

17/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!