دبي، الإمارات العربية المتحدة – أعلنت منصة Node.js عن تحديثات أمنية عاجلة لمعالجة ثغرة حرجة تؤثر على “جميع تطبيقات Node.js الإنتاجية تقريبًا”. وأفادت المنصة بأن استغلال هذه الثغرة بصورة ناجحة يمكن أن يؤدي إلى حالة حرمان من الخدمة (DoS).
تتعلق المشكلة بآلية معالجة استثنائية في Node.js، حيث إن الخطأ الذي يحدث عند تجاوز سعة المكدس (stack overflow) عند استخدام وحدات async_hooks يتسبب في إنهاء العملية مباشرة برموز خروج غير قابلة للمعالجة، بدلاً من رمي خطأ يمكن التقاطه. هذا يعرّض التطبيقات التي تعتمد على عمق التكرار (recursion depth) الذي يتحكم فيه مدخلات غير معقمة لهجمات حرمان من الخدمة.
ثغرة Node.js الحرجة تستدعي تحديثات فورية
تؤثر هذه الثغرة الأمنية، التي تم تعيين معرّفها CVE-2025-55131 لها، على العديد من الأطر والأدوات شائعة الاستخدام في مجال الإدارة الفنية للتطبيقات (APM). ويشمل ذلك، على سبيل المثال لا الحصر، React Server Components، وNext.js، بالإضافة إلى أدوات مثل Datadog، وNew Relic، وDynatrace، وElastic APM، وOpenTelemetry. ويعود السبب في ذلك إلى اعتمادها على AsyncLocalStorage، وهي مكون مبني فوق وحدة async_hooks، والذي يسمح بتخزين البيانات طوال عمر عملية غير متزامنة.
وقد تم بالفعل معالجة هذه الثغرة في الإصدارات المحددة كالتالي:
- Node.js 20.20.0 (LTS)
- Node.js 22.22.0 (LTS)
- Node.js 24.13.0 (LTS)
- Node.js 25.3.0 (Current)
وتجدر الإشارة إلى أن المشكلة تؤثر أيضًا على جميع إصدارات Node.js منذ الإصدار 8.x، وهو الإصدار الأول الذي تضمن async_hooks، وصولاً إلى الإصدار 18.x. ومع ذلك، فإن هذه الإصدارات تعتبر خارج نطاق الدعم (end-of-life) ولن تتلقى تحديثات رسمية لمعالجة الثغرة.
تفاصيل الثغرة وأثرها
يكمن جوهر المشكلة في أن Node.js يخرج برمز الخطأ 7 (دلالة على فشل معالج الاستثناءات الداخلي) بدلاً من التعامل مع الاستثناء بشكل رشيق عند حدوث تجاوز لسعة المكدس في كود المستخدم أثناء تفعيل async_hooks. و async_hooks هي واجهة برمجة تطبيقات منخفضة المستوى تسمح للمطورين بتتبع دورة حياة الموارد غير المتزامنة، مثل استعلامات قواعد البيانات، والمؤقتات، وطلبات HTTP.
وفقًا للإعلان الصادر عن Node.js، فإن الإصلاح الذي تم تطبيقه يهدف إلى اكتشاف أخطاء تجاوز سعة المكدس وإعادة رميها إلى كود المستخدم بدلاً من اعتبارها حوادث قاتلة. ورغم الأثر العملي الكبير لهذه الثغرة، فإن Node.js يصنف هذا الإصلاح كإجراء تخفيف جزئي (mitigation) لعدة أسباب.
وذكرت Node.js في بيانها: “على الرغم من أن هذا يعتبر إصلاحًا لخلل غير محدد، فقد فضّلنا تضمينه في الإصدار الأمني نظرًا لتأثيره الواسع على النظام البيئي. فالعديد من الأطر مثل React Server Components، وNext.js، ومعظم أدوات APM، متأثرة بهذا الخلل. ويعمل الإصلاح على تحسين تجربة المطورين وجعل معالجة الأخطاء أكثر قابلية للتنبؤ.”
وبالنظر إلى خطورة الثغرة، يُنصح المستخدمون لهذه الأطر والأدوات، وكذلك مقدمو خدمات الاستضافة، بتحديث أنظمتهم في أقرب وقت ممكن. كما يُوصى القائمون على صيانة المكتبات والأطر بتطبيق إجراءات دفاعية أقوى للتصدي لتجاوز سعة المكدس وضمان استمرارية الخدمة.
يأتي هذا الإعلان بعد وقت قصير من إصدار Node.js لتحديثات لمعالجة ثلاث ثغرات أخرى ذات خطورة عالية (CVE-2025-55131، CVE-2025-55130، وCVE-2025-55130). هذه الثغرات الأخرى كانت يمكن استغلالها لتسريب أو إتلاف البيانات، وقراءة الملفات الحساسة باستخدام مسارات روابط رمزية نسبية معدة خصيصًا، وتفعيل حرمان من الخدمة عن بعد.

