→ العودة إلى المدونةIT Security

ثغرة ⁦Brotli2Shell (CVE-2026-111497)⁩: ما يجب أن تعرفه المؤسسات الآن عن ⁦Node2Shell⁩ و⁦HTTP2Shell⁩

27 أكتوبر 2026

ثغرة ⁦Brotli2Shell⁩ في لمحة

تُعدّ ⁦Brotli2Shell (CVE-2026-111497)⁩، المعروفة أيضًا باسم ⁦Node2Shell⁩ أو ⁦HTTP2Shell⁩، ثغرةً حرجة في مفكك ترميز ⁦Brotli⁩ من ⁦Google⁩ الواسع الانتشار. وبصفتها جهة ترقيم ⁦CVE⁩ المختصة، تمنحها ⁦Google⁩ درجة ⁦CVSS v4.0 9.2⁩. وقد كُشف عنها في 21 أكتوبر 2026 مع الإصدار الأمني لمنصة ⁦Node.js⁩. ويمكن لبيانات مضغوطة بصيغة ⁦Brotli⁩ ومُعدّة خصيصًا أن تُفسد ذاكرة العملية، وأن تكشف محتويات الذاكرة، وأن تتسبب في انهيار العمليات، بل وأن تتيح في أسوأ الحالات تنفيذ تعليمات برمجية دون مصادقة. ولا يقتصر الخلل على تطبيق بعينه، بل يكمن في مكتبة مدمجة في ⁦Node.js⁩ و⁦Bun⁩ و⁦.NET⁩ وحزم ⁦Python⁩ و⁦Envoy⁩ و⁦Istio⁩ ومكتبات ⁦Java⁩ وقواعد البيانات وأدوات الوسائط المتعددة. تقريرنا التفصيلي عن الوضع، مع مصفوفة الإصدارات وفحص الإصدار وخطة من 7 نقاط وفحص مدى التأثر: https://brotli2shell.wiz.vamisec.com/en/

ما يحدث تقنيًا: قيمة إرجاع واحدة بمعنيين

تُعدّ ⁦Brotli⁩ صيغة ضغط تستخدمها خوادم الويب وشبكات توصيل المحتوى لتقليص حجم المحتوى. ويعمل مفكك الترميز بأسلوب التدفق، فيجمع البايتات في مخزن مؤقت داخلي سعته ثمانية بايتات عندما تنقصه بيانات الإدخال. وعند حدوث تبديل كتلة مستحيل، كانت الدالة ⁦DecodeBlockTypeAndLength()⁩ تُرجع القيمة نفسها التي تُرجعها عند نقص بيانات الإدخال. لذلك ظنّ مفكك الترميز أن خطأ الصيغة مجرد توقف مؤقت، فأضاف مزيدًا من البايتات وكتب متجاوزًا نهاية المخزن المؤقت. ووفقًا للتحليلات، يكتب البايت التاسع فوق حقل طول المخزن المؤقت، ما يجعل عمليات الكتابة اللاحقة قابلة للتحكم. وقد اكتشف الخلل ⁦Khai Tran⁩ و⁦Sylvie Mayer⁩ من ⁦OpenAI Codex Security⁩. واللافت أن الإصلاح موجود في الشيفرة المصدرية العامة لمكتبة ⁦Brotli⁩ منذ 27 فبراير 2026، لكن الإصدارات المتضمنة له لم تصدر إلا في 21 أكتوبر. وظلت المشاريع التي تعتمد على إصدارات مثبّتة من ⁦Brotli⁩ عرضة للخطر قرابة ثمانية أشهر.

المنتجات المتأثرة والإصدارات التي تعالج الثغرة

تتأثر مكتبة ⁦Google Brotli⁩ في الإصدارات من ⁦1.0.3⁩ حتى ⁦1.2.0⁩، وقد أُصلحت الثغرة في الإصدارات ⁦1.0.10 · 1.1.1 · 1.2.1⁩. وتتوفر الإصدارات المُصلَحة التالية من المنتجات: ⁦Node.js 22.23.4 · 24.22.1 · 26.12.1⁩، و⁦Bun 1.4.4⁩، و⁦.NET 8.0.33 · 9.0.22 · 10.0.14⁩، وحزمتا ⁦Python⁩ وهما ⁦brotli 1.2.1⁩ و⁦brotlicffi 1.2.1.0⁩، و⁦Envoy 1.36.12 · 1.37.8 · 1.38.6 · 1.39.3 · 1.40.0⁩، و⁦Istio 1.29.9 · 1.30.6 · 1.31.2⁩، و⁦Brotli4j 1.24.0⁩. ولا تحصل ⁦Node.js 20⁩ والفروع الأقدم على إصلاح، ووفقًا لشركة ⁦Microsoft⁩ لا يتأثر ⁦.NET Framework⁩. أما ⁦ClickHouse⁩ ومكتبة ⁦libjxl⁩، التي يتأثر عبرها ⁦FFmpeg⁩ أيضًا، فقد دُمجت إصلاحاتهما في الشيفرة لكنها لم تُنشر بعد. ولم يصدر بعدُ إصلاح لكل من ⁦DuckDB⁩ و⁦Apache Arrow⁩، وذلك حتى 27 أكتوبر 2026. أما وحدات ⁦Brotli⁩ في ⁦nginx⁩ و⁦Apache⁩ فتقتصر على الضغط ولا تتأثر، وتستخدم الشيفرة المصدرية الحالية لكل من ⁦Chrome⁩ و⁦Firefox⁩ مراجعات من ⁦Brotli⁩ تعود إلى مارس وأبريل 2026 وتتضمن الإصلاح، ولم يُعلَن بعدُ أول إصدار من المتصفحين يتضمنه.

ثلاثة مسارات إلى مفكك الترميز: الطلبات والاستجابات والملفات

يكون النظام قابلًا للاستغلال عندما يفك ضغط بيانات ⁦Brotli⁩ واردة من مصدر غير موثوق. أولًا، الطلبات الواردة التي تحمل الترويسة ⁦Content-Encoding: br⁩، مثلًا عبر ⁦Express 5⁩ مع ⁦body-parser 2⁩، أو ميزة فك ضغط الطلبات في ⁦ASP.NET Core⁩، أو مرشحات ⁦Brotli⁩ في ⁦Envoy⁩. ثانيًا، استجابات الخوادم الخارجية: فالدالة ⁦fetch()⁩ في ⁦Node.js⁩ و⁦HttpClient⁩ في ⁦.NET⁩ عند تفعيل فك الضغط وعملاء ⁦Python⁩ المثبتة لديها حزمة ⁦Brotli⁩ تفك الضغط تلقائيًا. وقد عرضت ⁦Imperva⁩ تنفيذ تعليمات برمجية ضد ⁦Node.js⁩ عبر كلا المسارين. وبذلك تصبح أيضًا خطافات الويب ومعاينات الروابط وبرامج الزحف ووكلاء الذكاء الاصطناعي المزودون بأدوات ويب تجلب عناوين ويب يختارها المستخدم عرضةً للخطر. ثالثًا، ملفات مثل ⁦JPEG XL⁩ أو ⁦Parquet⁩. ولا يحمي جدار حماية تطبيقات الويب إلا الاتجاه الوارد، ولا يكفي مجرد حذف ⁦br⁩ من ⁦Accept-Encoding⁩، لأن الخادم الخبيث يستطيع إرسال بيانات ⁦Brotli⁩ رغم ذلك.

الوضع في 27 أكتوبر 2026: شيفرات استغلال منشورة، والاستغلال غير مؤكد

تنتشر على ⁦GitHub⁩ عدة شيفرات استغلال. ولا ينجح تنفيذ التعليمات البرمجية بها في الغالب إلا في ظروف مضبوطة بعناية، في حين يسهل التسبب في انهيار العملية. وفي 26 أكتوبر أبلغت ⁦ELLIO⁩ عن حركة استغلال تستهدف ⁦Node.js 24.22.0⁩ رصدتها مستشعراتها الخاصة، وتعدّها أول استغلال يُرصد في بيئة حقيقية. ولم تؤكد ⁦Tenable⁩ ذلك بشكل مستقل، ولم تكن ⁦Rapid7⁩ على علم بأي استغلال، كما أن الثغرة غير مدرجة في كتالوج ⁦KEV⁩ لدى ⁦CISA⁩. ويدرجها فريق ⁦CERT-Bund⁩ الألماني في النشرة ⁦WID-SEC-2026-4117⁩ بتصنيف متوسط. وبحسب ⁦Akamai⁩ تشغّل 61 بالمئة من الشبكات إصدارات متأثرة من ⁦Node.js⁩، وبحسب ⁦Wiz⁩ تحتوي 91 بالمئة من البيئات السحابية على موارد معرضة للخطر.

ما ينبغي للمؤسسات فعله الآن

نوصي بخطة من 7 نقاط تتدرج من الخارج إلى الداخل: 1. تحديد المواضع التي يُفك فيها ضغط ⁦Brotli⁩، بدءًا بالأنظمة المكشوفة على الإنترنت. 2. رفض الطلبات التي تحمل ⁦Content-Encoding: br⁩ على مستوى جدار ⁦WAF⁩ أو شبكة ⁦CDN⁩ أو الوكيل العكسي، وتعطيل مرشحات ⁦Brotli⁩ في ⁦Envoy⁩ و⁦Istio⁩. 3. تطبيق التصحيحات أولًا على الخدمات المتاحة من الخارج والخدمات التي تجلب عناوين ويب خارجية، وإعادة بناء صور الحاويات وإعادة تشغيل العمليات. 4. ثم معالجة الأنظمة الداخلية وخطوط البيانات والأدوات. 5. المطالبة بتقارير مكتوبة من الموردين منذ اليوم الأول. 6. فحص الشيفرة وصور الحاويات بالماسحات المفتوحة المصدر من ⁦JFrog⁩ و⁦Trail of Bits⁩، ومراجعة حالات الانهيار منذ 21 أكتوبر، وتغيير بيانات الاعتماد عند وجود مؤشرات. 7. توثيق كل شيء والتحقق من التزامات الإبلاغ. التفاصيل وأوامر الجرد: https://brotli2shell.wiz.vamisec.com/en/#actions

التزامات الإبلاغ بموجب ⁦NIS2⁩ واللائحة العامة لحماية البيانات و⁦DORA⁩ وقانون المرونة السيبرانية

لا يستلزم وجود ثغرة غير مستغلة بحد ذاته الإبلاغ. أما إذا استُغلت، فقد تنطبق التزامات الإبلاغ بموجب ⁦NIS2⁩ وقانون ⁦BSI⁩ الألماني، أو بموجب اللائحة العامة لحماية البيانات، أو بموجب ⁦DORA⁩ بالنسبة إلى الكيانات المالية. ومنذ 11 سبتمبر 2026، يُلزم قانون المرونة السيبرانية ⁦Cyber Resilience Act⁩ الشركاتِ المصنّعة التي تطرح منتجات خاصة بها تتضمن ⁦Brotli⁩ أو بيئة تشغيل مثل ⁦Node.js⁩ بالإبلاغ عن الثغرات المستغلة بشكل نشط عبر منصة الإبلاغ التابعة لوكالة ⁦ENISA⁩. وتبدأ المهل من لحظة العلم بالحادثة.

كيف تدعمكم ⁦VamiSec⁩

بصفتها عضوًا في ⁦Wiz Partner Alliance⁩، تتحقق ⁦VamiSec⁩ في وقت قصير مما إذا كانت ثغرة ⁦Brotli2Shell⁩ تؤثر عليكم: من الخارج باستخدام ⁦Wiz ASM⁩ و⁦Wiz Red Agent⁩ و⁦VamiRedteam⁩، ومن الداخل عبر موصلات ⁦Wiz⁩ للقراءة فقط للسحابة و⁦Kubernetes⁩، وكذلك بماسحات ⁦JFrog⁩ و⁦Trail of Bits⁩ في مستودعاتكم. وتحصلون على قائمة نتائج مرتبة حسب الأولوية وخطة إجراءات. ويمكنكم طلب الفحص عبر https://brotli2shell.wiz.vamisec.com/en/#exposure-check أو بالبريد الإلكتروني إلى wiz@vamisec.com. وعند الاشتباه في وقوع اختراق، يمكنكم التواصل مع فريق ⁦CSIRT⁩ لدينا على مدار الساعة عبر csirt@vamisec.com.

أسئلة شائعة حول ⁦Brotli2Shell⁩

ما هي ثغرة ⁦Brotli2Shell⁩؟

الاسم ⁦Brotli2Shell⁩ هو أحد الأسماء التي تُطلق على ⁦CVE-2026-111497⁩، وهي ثغرة حرجة في مفكك ترميز ⁦Brotli⁩ من ⁦Google⁩ تبلغ درجتها ⁦CVSS v4.0 9.2⁩. ومن الأسماء الأخرى للثغرة نفسها ⁦Node2Shell⁩ و⁦HTTP2Shell⁩ و⁦Broccoli2Shell⁩. ويمكن لبيانات ⁦Brotli⁩ مُعدّة خصيصًا أن تُفسد الذاكرة، وأن تتيح في أسوأ الحالات تنفيذ تعليمات برمجية.

ما الإصدارات الآمنة؟

الإصدارات الآمنة هي ⁦Brotli 1.0.10 · 1.1.1 · 1.2.1⁩، و⁦Node.js 22.23.4 · 24.22.1 · 26.12.1⁩، و⁦Bun 1.4.4⁩، و⁦.NET 8.0.33 · 9.0.22 · 10.0.14⁩، وحزمتا ⁦Python⁩ وهما ⁦brotli 1.2.1⁩ و⁦brotlicffi 1.2.1.0⁩، إضافة إلى الإصدارات المُصلَحة من ⁦Envoy⁩ و⁦Istio⁩ و⁦Brotli4j⁩. وكثيرًا ما تنقل التوزيعات الإصلاح إلى إصداراتها السابقة دون رقم إصدار جديد، وعندها يكون المرجع سجل تغييرات الحزمة.

هل أنا متأثر إذا لم أكن أستخدم ⁦Node.js⁩؟

ربما نعم. فالخلل يكمن في مفكك ترميز ⁦Brotli⁩ نفسه، الذي تتضمنه أيضًا ⁦Bun⁩ و⁦.NET⁩ وحزم ⁦Python⁩ و⁦Envoy⁩ و⁦Istio⁩ ومكتبات ⁦Java⁩ وقواعد بيانات مثل ⁦ClickHouse⁩ و⁦DuckDB⁩، إضافة إلى ⁦Apache Arrow⁩ و⁦FFmpeg⁩. والعامل الحاسم هو ما إذا كان أحد المكونات يفك ضغط بيانات ⁦Brotli⁩ واردة من مصدر غير موثوق.

هل تُستغل ثغرة ⁦Brotli2Shell⁩ بالفعل؟

حتى 27 أكتوبر 2026، لم يُؤكَّد أي استغلال ضد ضحايا حقيقيين. وتوجد شيفرات استغلال منشورة، كما أبلغت ⁦ELLIO⁩ عن حركة هجومية رصدتها مستشعراتها الخاصة. والثغرة غير مدرجة في كتالوج ⁦KEV⁩ لدى ⁦CISA⁩. ومع ذلك، تعاملوا مع الأنظمة التي يمكن الوصول إليها كما لو كانت تتعرض للهجوم.

هل يحمي جدار ⁦WAF⁩ من ⁦Brotli2Shell⁩؟

جزئيًا فقط. فقواعد ⁦WAF⁩ من ⁦Cloudflare⁩ أو ⁦Vercel⁩ أو ⁦Imperva⁩ تغطي الطلبات الواردة، وقاعدة ⁦Cloudflare⁩ تكتفي افتراضيًا بالتسجيل. ولا يرى أي جدار ⁦WAF⁩ الاستجابات الواردة من خوادم خارجية تجلبها خدماتكم وتفك ضغطها. لذا يظل التصحيح ضروريًا.

أين أجد التفاصيل والدعم؟

يضم تقرير الوضع التفصيلي مصفوفة الإصدارات وفحص الإصدار وأوامر الجرد وخطة من 7 نقاط والأسئلة الشائعة، ويمكنكم من خلاله أيضًا طلب فحص مدى التأثر من ⁦VamiSec⁩: https://brotli2shell.wiz.vamisec.com/en/

هل لديكم أسئلة حول أمن تقنية المعلومات في مؤسستكم؟

استشارة أولية مجانية →