Node.js تسد 10 ثغرات أمنية بينها ثغرة في Brotli قد تتيح تنفيذ التعليمات البرمجية عن بُعد

أصدر مشروع Node.js تحديثات أمنية للفروع 22 و24 و26. وأخطر الثغرات خلل في الذاكرة داخل أداة فك ضغط Brotli قد يتيح تنفيذ التعليمات البرمجية عن بُعد. كما تسد التحديثات ثغرتين في التحقق من TLS وتسحب الثقة من شهادات eMudhra.

Paylaş
Node.js تسد 10 ثغرات أمنية بينها ثغرة في Brotli قد تتيح تنفيذ التعليمات البرمجية عن بُعد

أصدر مشروع Node.js في 21 أكتوبر 2026 تحديثات أمنية لفروع الإصدارات 22 و24 و26. وبحسب النشرة الأمنية لـ Node.js، تسد التحديثات 10 ثغرات: أربع عالية الخطورة وثلاث متوسطة وثلاث منخفضة. والإصدارات المصححة هي 22.23.4 و24.22.1 و26.12.1.

أخطر الثغرات: أداة فك Brotli

Brotli صيغة ضغط شائعة على الويب، تستخدمها المتصفحات والخوادم لضغط الصفحات. ويحمل Node.js أداة خاصة به لفك بيانات Brotli. وبحسب النشرة، فإن الثغرة CVE-2026-111497 كتابة خارج حدود الذاكرة المخصصة في هذه الأداة، وقد تتيح تنفيذ التعليمات البرمجية عن بُعد، وتؤثر في الفروع الثلاثة كلها. وتُظهر ملاحظات الإصدار أن الإصلاح جاء بنقل تصحيح من شيفرة مشروع Brotli نفسه إلى Node.js.

لم يكشف Node.js تفاصيل عن كيفية تفعيل الثغرة ولا درجة خطورتها (CVSS). والتطبيقات المعرّضة للخطر هي تلك التي تفك بيانات Brotli قادمة من الخارج يمكن للمهاجم صياغتها، مثل الخوادم التي تفك أجسام الطلبات المضغوطة بـ Content-Encoding: br، أو البرامج التي تفك ردودًا مضغوطة من خوادم لا تتحكم بها.

ثغرتان في التحقق من TLS

تتعلق ثغرتان أخريان عاليتا الخطورة بطريقة تحقق Node.js من شهادة الخادم الذي يتصل به. ففي CVE-2026-105483 كان يمكن تجاوز فحص اسم المضيف عند كتابة عنوان IP بأرقام كاملة العرض، وفي CVE-2026-106069 عند تحليل اسم المضيف بشكل متساهل إلى عنوان IP. ومثل هذه الثغرات قد تساعد طرفًا وسيطًا على انتحال الخادم المقصود. أما الثغرة الرابعة عالية الخطورة فهي CVE-2026-105482، إذ كانت الدالة dns.resolve تقطع الأسماء عند حرف NUL.

إصلاحات أخرى

  • متوسطة الخطورة: معالجة اتصال مستمر (keep-alive) لرد كُتب قبل إرسال الطلب (CVE-2026-105481)؛ وتحقق غير سليم من الشهادات لعناوين IPv4 غير القياسية (CVE-2026-106072)؛ وحفظ ذاكرات العشوائية الخاصة بـ crypto.randomUUID() وrandomInt() داخل لقطات بدء التشغيل، فيكرر كل عملية القيم "العشوائية" نفسها (CVE-2026-106074).
  • منخفضة الخطورة: ثلاث ثغرات في قارئ ZIP ونموذج الأذونات (CVE-2026-106070 وCVE-2026-106071 وCVE-2026-106073).
  • تحديثات التبعيات: c-ares وOpenSSL (3.5.9) وSQLite وundici. كما حُدّثت قائمة شهادات الجذر الموثوقة إلى NSS 3.131.1، ما يسحب الثقة من شهادات eMudhra، جهة إصدار الشهادات الهندية التي اختُرقت مفاتيحها الخاصة.

ما الذي ينبغي فعله

تحقق من الإصدار على الخوادم وأجهزة التطوير بالأمر node -v، وانتقل بحسب فرعك إلى 22.23.4 أو 24.22.1 أو 26.12.1. وإن كنت تستخدم Docker فأعد بناء الصور على قاعدة Node.js الجديدة، فالحاويات التي تعمل بصور قديمة تبقى معرّضة. وإن كنت تثبّت Node.js من مدير حزم توزيعة Linux فتابع النشرات الأمنية للتوزيعة نفسها. ولم يعد Node.js 20 وما قبله يتلقى الدعم ولن يحصل على هذا الإصلاح، ويذكّر Node.js بأن الإصدارات المنتهية الدعم تُعدّ متأثرة في كل إصدار أمني.

تستند التفاصيل حاليًا إلى نشرة Node.js وملاحظات الإصدار فقط، إذ لم يكشف المشروع التفاصيل التقنية ولا درجات الخطورة. وإلى أن يتضح في أي أنماط الاستخدام يمكن تفعيل ثغرة Brotli من الخارج، يبقى تحديث التطبيقات التي تستقبل بيانات مضغوطة من مصادر خارجية أولًا هو الخيار الأسلم. ننصح بمتابعة تقييمات الباحثين الأمنيين المستقلين للاطلاع على زوايا أخرى من القصة.