ثغرة 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.
جميع الروابط والمصادر
تقرير الوضع وفحص مدى التأثر: https://brotli2shell.wiz.vamisec.com/en/ · سجل CVE: https://www.cve.org/CVERecord?id=CVE-2026-111497 · النشرة الأمنية لمنصة Node.js: https://nodejs.org/en/blog/vulnerability/october-2026-security-releases · إصلاح Brotli: https://github.com/google/brotli/commit/0ed4268a4401abcb4472096340477cf4af7d1a2b · .NET: https://github.com/dotnet/announcements/issues/494 · Imperva: https://www.imperva.com/blog/node2shell-from-brotli-data-to-remote-code-execution/ · JFrog: https://research.jfrog.com/post/brotli2shell-beyond-node2shell-and-http2shell/ · Wiz: https://www.wiz.io/blog/cve-2026-111497-brotli-rce-node-js · CERT-Bund: https://wid.cert-bund.de/portal/wid/securityadvisory?name=WID-SEC-2026-4117 · نظرة عامة مستقلة على المنتجات: https://broccoli2shell.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/
هل لديكم أسئلة حول أمن تقنية المعلومات في مؤسستكم؟
استشارة أولية مجانية →