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






























