CVE-2026-100721
تجاوز التفويض في vm2 قبل الإصدار 3.12.2 عبر محلل مخصص
- تم النشر
- 27/09/2026
- محدث
- 27/09/2026
- تخصيص CNA
- VulnCheck
- الأدلة المرصودة
- 03/10/2026
CVSS الأساسي
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Xملخص
قبل الإصدار 3.12.2 من vm2، توجد ثغرة تجاوز للتفويض في محلّل الوحدات الخارجية NodeVM. عندما يقوم المُضمِّن بتهيئة `require.external` باستخدام محلّل مخصص (مع `context: 'host'`)، فإن `LegacyResolver.customResolve` في lib/resolver-compat.js يسجّل دليل الوحدة المُحلَّل في `this.externals` كـ `new RegExp('^' + escapeRegExp(resolvedPath))`، دون اشتراط فاصل مسار أو حدّ لنهاية السلسلة. لذلك يمكن للكود الضيف غير الموثوق أن يطلب الوحدة المُدرجة في القائمة المسموح بها (مثل `foo`) ثم يطلب المسار المطلق لوحدة شقيقة غير مُدرجة في القائمة المسموح بها يتشارك مسارها فقط في البادئة المُحلَّلة (مثل `.../node_modules/foo2/index.js`)؛ فتمرّ الوحدة الشقيقة عبر `isPathAllowedForModule` وتُحمَّل من خلال `hostRequire`، فيُنفَّذ كودها من المستوى الأعلى في عملية المضيف قبل تغليف الصادرات بـ `vm.readonly`، مما يؤدي إلى الهروب من بيئة العزل وتنفيذ كود عشوائي في سياق المضيف.
المصادر
Python PoC لـ CVE-2026-100721: يكتشف ويستغل تجاوز قائمة السماح الخارجية في NodeVM الخاص بـ vm2 <3.12.2، مما يحقق الهروب من الـ sandbox وتنفيذ أوامر عن بُعد على المضيف عبر مختبر محلي أو أهداف HTTP جماعية.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.