كشفت ثغرة أمنية حرجة في مكتبة vm2 الشهيرة لـ Node.js، والتي يمكن استغلالها بنجاح للسماح للمهاجمين بتشغيل تعليمات برمجية عشوائية على نظام التشغيل الأساسي. تحمل هذه الثغرة، التي تم تعيينها بالمعرف CVE-2026-22709، درجة خطورة قصوى تبلغ 9.8 من 10 على مقياس CVSS.
ويأتي اكتشاف هذه الثغرة الأمنية الجديدة في وقت يشهد فيه عالم الأمن السيبراني تحديات مستمرة، خاصة مع الاعتماد المتزايد على المكتبات مفتوحة المصدر في تطوير التطبيقات. إن طبيعة هذه الثغرة، التي تسمح بالهروب من بيئة التشغيل المعزولة (Sandbox)، تثير قلق المطورين والمؤسسات على حد سواء.
تأثير الثغرة الأمنية CVE-2026-22709 في مكتبة vm2
ووفقاً لصيانة مكتبة vm2، باتريك سيميك، فإن المشكلة تكمن في أن معالجة دوال Promise.prototype.then و Promise.prototype.catch في الإصدار 3.10.0 من المكتبة يمكن تجاوزها. هذا يسمح للمهاجمين بالهروب من الصندوق الرملي (Sandbox) وتنفيذ تعليمات برمجية ضارة خارج نطاق الأمان المخصص لها.
تُستخدم مكتبة vm2 في Node.js لتشغيل التعليمات البرمجية غير الموثوق بها ضمن بيئة معزولة آمنة، وذلك من خلال اعتراض وتوجيه كائنات JavaScript لمنع التعليمات البرمجية داخل الصندوق الرملي من الوصول إلى بيئة الاستضافة. ومع ذلك، فإن آلية المعالجة هذه لم تكن كافية في هذه الحالة.
آلية الهروب من الصندوق الرملي
وأشار باحثو Endor Labs، بيتون كينيدي وكريس ستيكو، إلى أن الوظائف غير المتزامنة (Async functions) في JavaScript تعيد كائنات `globalPromise` بدلاً من `localPromise`. وبما أن دوال `then` و `catch` في `globalPromise.prototype` لا تتم معالجتها بشكل صحيح، على عكس `localPromise`، فإن ذلك يفتح الباب أمام استغلال الثغرة.
على الرغم من معالجة ثغرة CVE-2026-22709 في الإصدار 3.10.2 من vm2، إلا أنها ليست الأولى من نوعها. فقد شهدت المكتبة سلسلة من ثغرات الهروب من الصندوق الرملي في السنوات الأخيرة، مثل CVE-2022-36067 و CVE-2023-29017 وغيرها.
تاريخ الثغرات والتطورات المستقبلية
وكان اكتشاف ثغرة CVE-2023-37903 في يوليو 2023 قد دفع سيميك إلى الإعلان عن إيقاف المشروع. ومع ذلك، تم لاحقاً إزالة هذه الإشارات من ملف README الأخير على مستودع GitHub، كما تم تحديث صفحة الأمن لتفيد بأن إصدارات vm2 3.x لا تزال قيد الصيانة النشطة.
ومع ذلك، أقر مطورو vm2 بأن اكتشاف تجاوزات جديدة أمر محتمل في المستقبل. ولهذا، يحثون المستخدمين على التأكد من تحديث المكتبة باستمرار والنظر في بدائل أخرى أكثر قوة، مثل isolated-vm، لضمان ضمانات عزل أقوى.
ووفقاً لـ Semgrep، فإن بديل vm2، وهو isolated-vm، يعتمد على واجهة V8 الأصلية Behat، مما يوفر أساساً أكثر صلابة. ومع ذلك، يؤكد مطورو vm2 على أهمية العزل ويوصون باستخدام Docker مع الفصل المنطقي بين المكونات.
وفي ضوء خطورة هذه الثغرة، يوصى المستخدمون بالتحديث إلى أحدث إصدار (3.10.3)، والذي يتضمن إصلاحات لثغرات إضافية للهروب من الصندوق الرملي، مما يعزز أمان تطبيقاتهم ويحميهم من أي هجمات محتملة. وتُعد استراتيجيات التحديثات الأمنية والبحث عن حلول بديلة جزءاً أساسياً من الأمن السيبراني العصري.

