CVE-2026-92948 in vm2المعلومات

الملخص

بحسب VulDB • 17/09/2026

تُصاب الإصدارات من `vm2` التي تكون أكبر من أو تساوي 3.9.6 وأصغر من أو تساوي 3.11.6 بثغرة تتعلق بتجاوز قائمة السماح (allowlist) للمكونات المدمجة في NodeVM، مما يسمح بالهروب من البيئة المعزولة (sandbox escape) على Node.js الإصدار 24 وما بعده عندما يسمح المُضمّن صراحةً بالمكون المدمج `node:test` (على سبيل المثال: `require: { builtin: ['node:test'] }`).

في Node.js 24 والإصدارات الأحدث، يكشف `module.builtinModules` عن المفتاح الخاص بالبروتوكول فقط وهو `node:test`، والذي لا تغطيه حماية `DANGEROUS_BUILTINS` القائمة على العائلات في vm2، لذا يتم تخزينه في محمّل التمرير المضيف العام (generic host-passthrough loader).

نظرًا لأن دالة `requireImpl()` الموجودة في الملف `lib/setup-node-sandbox.js` تقوم بإزالة بادئة `'node:'` واحدة قبل البحث عن المكونات المدمجة، فإن استدعاء الكود المعزول لـ `require('node:node:test')` يحل إلى المفتاح المخزن `node:test` ويتلقى وكيلًا للقراءة فقط (readonly proxy) للوحدة النمطية للمضيف.

يتم توجيه الاستدعاءات لدالة `node:test.run()` إلى تنفيذ المضيف، الذي يُنشئ عملية Node منفذة لتنفيذ الاختبارات معزولة عن العملية الرئيسية (process-isolated)، ويمرّر قيم `execArgv` التي يتحكم فيها المهاجم؛ وبالتالي فإن توفير وسيط `--eval=<JavaScript>` يؤدي إلى تشغيل JavaScript عشوائي في عملية Node للمضيف غير مقيدة وخارج بيئة الـ NodeVM المعزولة.

تم إصلاح الثغرة في الإصدار 3.11.7 من vm2.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

VulnCheck

حجز

17/09/2026

إفشاء

17/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-406432

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!