12 ثغرة حرجة فمكتبة vm2 ديال Node.js كتسمح بالهروب من الـ sandbox وتنفيذ أوامر برمجية عشوائية
vm2 Node.js Library Vulnerabilities Enable Sandbox Escape and Arbitrary Code Execution
12 ثغرة حرجة فمكتبة vm2 ديال Node.js كتسمح بالهروب من الـ sandbox وتنفيذ أوامر برمجية عشوائية
TL;DR تكتاشفات 12 ثغرة حرجة فمكتبة vm2 ديال الـ sandbox فـ Node.js، وكلهم كيسمحو للمهاجمين يهربو من الـ sandbox وينفذو أوامر برمجية عشوائية فـالنظام المضيف (host system). هاد الثغرات كطرح طرق متعددة ديال الهجوم بحال الـ prototype pollution، والـ code injection، والتلاعب بالخصائص ديال الـ object. خاص المستخدمين لي كيخدمو بنسخ vm2 لي كتساوي 3.10.4 وما قبل يديرو تحديث لـنسخة 3.11.2 بالزربة.
شنو وقع
تكتاشفات 12 ثغرة ديال الهروب من الـ sandbox فـ vm2، وهي مكتبة مفتوحة المصدر ديال Node.js مصممة باش تخدم كود JavaScript لي ماموثوقش فيه وسط sandbox آمن، وهادشي عن طريق اعتراض وتحصين الـ JavaScript objects باش كيتمنع الكود من الوصول للبيئة ديال النظام المضيف.
هاد الثغرات كتغطي مجموعة من آليات الهروب:
- CVE-2026-24118 (CVSS 9.8): هروب من الـ sandbox عن طريق
__lookupGetter__، كتقيس النسخ ≤3.10.4، وتدار ليها ترقيع فالنسخة 3.11.0. - CVE-2026-24120 (CVSS 9.8): تجاوز للترقيع ديال CVE-2023-37466 لي كيسمح بالهروب عن طريق الخاصية ديال الـ promise object species، كتقيس النسخ ≤3.10.3، وتدار ليها ترقيع فالنسخة 3.10.5.
- CVE-2026-24781 (CVSS 9.8): هروب من الـ sandbox عن طريق دالة
inspect، كتقيس النسخ ≤3.10.3، وتدار ليها ترقيع فالنسخة 3.11.0. - CVE-2026-26332 (CVSS 9.8): هروب عن طريق
SuppressedError، كتقيس النسخ ≤3.10.4، وتدار ليها ترقيع فالنسخة 3.11.0. - CVE-2026-26956 (CVSS 9.8): فشل فآلية الحماية لي كيتم التفعيل ديالو بـ TypeError فهاد العملية Symbol-to-string coercion. تأكدات فنسبة لـ Node.js 25.6.1. كتقيس النسخة 3.10.4، وتدار ليها ترقيع فالنسخة 3.10.5.
- CVE-2026-43997 (CVSS 10.0): ضخ الكود (code injection) لي كيعطي لـ مهاجم إمكانية الوصول للـ Object ديال النظام المضيف، كتقيس النسخ ≤3.10.5، وتدار ليها ترقيع فالنسخة 3.11.0.
- CVE-2026-43999 (CVSS 9.9): تجاوز لـلائحة السماح (allowlist) المدمجة فـ NodeVM، وهادشي كيسمح بتحميل الـ builtins لي مستثنية بحال
child_process، كتقيس النسخة 3.10.5، وتدار ليها ترقيع فالنسخة 3.11.0. - CVE-2026-44005 (CVSS 10.0): هروب كيسهل الـ prototype pollution، كتقيس النسخ بين 3.9.6 و 3.10.5، وتدار ليها ترقيع فالنسخة 3.11.0.
- CVE-2026-44006 (CVSS 10.0): الـ code injection عن طريق
BaseHandler.getPrototypeOf، كتقيس النسخ ≤3.10.5، وتدار ليها ترقيع فالنسخة 3.11.0. - CVE-2026-44007 (CVSS 9.1): تحكم غير سليم فالوصول (access control) كيسمح بتنفيذ أوامر عشوائية فنظام التشغيل، كتقيس النسخ ≤3.11.0، وتدار ليها ترقيع فالنسخة 3.11.1.
- CVE-2026-44008 (CVSS 9.8): هروب عن طريق
neutralizeArraySpeciesBatch()، كتقيس النسخ ≤3.11.1، وتدار ليها ترقيع فالنسخة 3.11.2. - CVE-2026-44009 (CVSS 9.8): هروب عن طريق استثناء ديال الـ null proto exception، كتقيس النسخ ≤3.11.1، وتدار ليها ترقيع فالنسخة 3.11.2.
هاد الكشف جا من بعد ثغرة حرجة أخرى (CVE-2026-22709، CVSS 9.8) لي دار ليها الترقيع الـمطور Patrik Simek، المشرف على مكتبة vm2، هادي شهراين. Simek عتارف بلي من المرجح يتم اكتشاف طرق تجاوز جديدة للـ sandbox فالمستقبل، وهادشي كيبين بلي كاينين تحديات هيكلية في عزل تنفيذ الـ JavaScript لي ماموثوقش فيه.
علاش هادشي مهم
مكتبة vm2 كتستعمل بكثرة فالتطبيقات لي كتحتاج تنفذ كود JavaScript لي كيعطيه المستخدمين أو أطراف خارجية مع صلاحيات وصول محدودة للنظام المضيف. هادشي كيشمل منصات الحوسبة بدون خادم (serverless compute)، خدمات الـ code sandboxing، وأنظمة إضافات التطبيقات (plugin systems). نجاح أي مهاجم فالهروب من الـ sandbox كيعطيه نفس الصلاحيات ديال الـ Node.js process، وهادشي يقدر يؤدي لـ:
- وصول غير مصرح بيه للبيانات الحساسة فـالنظام المضيف
- تحرك جانبي (lateral movement) داخل البنية التحتية ديال الشبكة
- اختراق لـ pipelines ديال CI/CD يلا كانت vm2 كتستعمل لتقييم الكود
- هجمات على سلسلة التزويد (supply chain) يلا كانت كتستعمل فأدوات إدارة الحزم (package management) أو تحليل الكود
الكثافة ديال هاد الثغرات — 12 ثغرة حرجة فنطاق ضيق ديال النسخ — كتدل على مشاكل منهجية فالتصميم كيفاش المكتبة كتعزل سياقات التنفيذ (execution contexts). الوجود ديال تجاوزات معتمدة على آلية وحدة (بحال CVE-2026-24118) وتجاوزات لـترقيعات سابقة (بحال CVE-2026-24120) كيبين بلي المهاجمين يقدرو يربطو (chain) عدة تقنيات مع بعضياتها أو يكتشفو آليات هروب جديدة فظرف وجيز.
الأنظمة المتضررة والـ CVEs
- vm2 (Node.js library)
- CVE-2026-24118 (CVSS 9.8)
- CVE-2026-24120 (CVSS 9.8)
- CVE-2026-24781 (CVSS 9.8)
- CVE-2026-26332 (CVSS 9.8)
- CVE-2026-26956 (CVSS 9.8)
- CVE-2026-43997 (CVSS 10.0)
- CVE-2026-43999 (CVSS 9.9)
- CVE-2026-44005 (CVSS 10.0)
- CVE-2026-44006 (CVSS 10.0)
- CVE-2026-44007 (CVSS 9.1)
- CVE-2026-44008 (CVSS 9.8)
- CVE-2026-44009 (CVSS 9.8)
شنو خاصك دير
- دير تحديث لـ vm2 لنسخة 3.11.2 دابا. هاد النسخة كتصلح 12 ثغرة كاملين.
- يلا كانت النسخة 3.11.2 مامتوفرش فالبيئة ديالك، طبق الحد الأدنى ديال الترقيع لـ CVE المعني:
- بالنسبة لـ CVE-2026-24118، -24781، -26332، -43997، -43999، -44005، -44006: دير تحديث لـ 3.11.0 أو ما فوق.
- بالنسبة لـ CVE-2026-24120، -26956: دير تحديث لـ 3.10.5 أو ما فوق.
- بالنسبة لـ CVE-2026-44007: دير تحديث لـ 3.11.1 أو ما فوق.
- بالنسبة لـ CVE-2026-44008، -44009: دير تحديث لـ 3.11.2 أو ما فوق.
- راجع السجلات (logs) ديال النشر باش تشوف واش كاين دليل على استعمال vm2، وعطي الأولوية لترقيع الأنظمة لي كتنفذ كود ماموثوقش فيه.
- يلا كان التحديث حابس، فكر تقتصر استعمال vm2 على بيئات معزولة (air-gapped) أو مافيهاش شبكة، وحدد الصلاحيات ديال الـ Node.js process عن طريق آليات الـ sandboxing ديال نظام التشغيل (بحال seccomp، AppArmor، SELinux).
- قيم واش باقة vm2 هي الخيار المناسب للاستخدام ديالك، نظرا للنمط ديال اكتشاف الثغرات لي وثقو المطور المسؤول.
أسئلة باقة مطروحة
- واش شي وحدة من هاد 12 ثغرة تخدمات هجوميا على أرض الواقع (in the wild).
- الإطار الزمني الدقيق ديال الاكتشاف والإبلاغ المسؤول (responsible disclosure) ديال كل CVE.
- واش كاين مكتبات أخرى ديال الـ JavaScript sandbox (بحال
isolated-vmأوworker_threads) متقاسة بـتقنيات تجاوز (bypass techniques) مشابهة. - واش متوفر شي كود لإثبات المفهوم (proof-of-concept) أو عروض تطبيقية لهاد الهجمات.
المصدر
vm2 Node.js Library Vulnerabilities Enable Sandbox Escape and Arbitrary Code Execution


