CVE-2026-111497: ثغرة واحدة في Brotli، وتسع بيئات تشغيل، ووكيل Codex الذي اكتشفها
Guides & Insights

CVE-2026-111497: ثغرة واحدة في Brotli، وتسع بيئات تشغيل، ووكيل Codex الذي اكتشفها

الكاتب

Rowan Sterling

تاريخ النشر

أحدث النماذج · 20عرض جميع النماذج →
المعايير: Artificial Analysis · يُحدَّث يوميًا
العودة إلى جميع المقالات

الأمر المحرج بشأن CVE-2026-111497 هو أنه ليس ثغرة واحدة في منتج واحد. بل هو كتابة واحدة خارج حدود الذاكرة في مفكّك ضغط Brotli التابع لـ Google، ويمكن الوصول إلى العيب نفسه عبر ثماني بيئات تشغيل ووكلاء منفصلة على الأقل تضمّن المكتبة — Node.js و.NET وASP.NET Core وBrotli وbrotlicffi الخاصين بـ Python وBun وEnvoy وIstio والتنفيذ الخالص بلغة Go. ويضع قياس Wiz نسبة 91% من بيئات السحابة في دائرة الخطر، ويشير إلى أن 82% منها تكشف Node.js علنًا. وأضافت CISA الثغرة إلى كتالوج الثغرات المعروفة المستغلة، وأصدرت Microsoft تصحيحًا طارئًا لـ .NET وVisual Studio.

النصف الثاني من القصة هو مَن اكتشفها: Khai Tran وSylvie Mayer من OpenAI Codex Security، وفقًا لتقرير Wiz واعتمادات المصدر الأصلي. ذلك فريق وكلاء أمن بالذكاء الاصطناعي، والثغرة التي اكتشفها تقع في أكثر مكتبة فك ضغط مضمّنة على نطاق واسع على الويب.

ما الذي يفعله الخطأ

إن Brotli هو ما يفك ضغطه تقريبًا كل مكدس HTTP عندما يرسل الخادم code>Content-Encoding: br/code>. يتسبب تدفق مضغوط تالف في كتابة خارج الحدود أثناء فك الضغط، ودرجة CVSS v4 هي 9.2. النطاق المتأثر هو Brotli من 1.0.3 إلى 1.2.0، وتم إصلاحه في 1.0.10 و1.1.1 و1.2.1.

ما يجعله برنامجًا وليس مجرد تذكرة هو أن المكتبة تُضمَّن داخل المشروع، أو تُربَط ساكنًا، أو يُعاد تنفيذها في كل بيئة تشغيل، لذا يصل الإصلاح عبر مسار إصدار مختلف في كل حالة — وأحيانًا لا يصل إطلاقًا، لأن التوزيعة القياسية لأي لغة تملك نسختها الخاصة.

قائمة التصحيحات، وهي الجزء المفيد

كل رقم أدناه مأخوذ من الملخص الاستشاري الخاص بـ Wiz وإصدارات المشاريع المعنية، كما قُرئ في 30 أكتوبر 2026.

• Google Brotli / libbrotli — الإصدارات المتأثرة 1.0.3–1.2.0، باستثناء النسخ الخلفية المصححة؛ تم الإصلاح في 1.0.10، 1.1.1، 1.2.1.

• Python Brotli — الإصدارات المتأثرة 1.0.3–1.2.0؛ تم إصلاحه في 1.2.1. brotlicffi — الإصدارات المتأثرة 1.0.3–1.2.0.x؛ تم إصلاحه في 1.2.1.0.

• Node.js — الإصدارات المتأثرة: 22.x و24.x و26.x؛ وتم الإصلاح في 22.23.4 و24.22.1 و26.12.1.

• Bun — النسخ المتأثرة: 1.0.21–1.4.3؛ تم الإصلاح في 1.4.4.

• Envoy Proxy — الإصدارات المتأثرة: 1.36.11، 1.37.7، 1.38.5، 1.39.2؛ تم الإصلاح في 1.36.12، 1.37.8، 1.38.6، 1.39.3 و1.40.0.

• Istio — الإصدارات المتأثرة: 1.29.0–1.29.8، و1.30.0–1.30.5، و1.31.0–1.31.1؛ وتم الإصلاح في 1.29.9 و1.30.6 و1.31.2.

• andybalholm/brotli (Go) — متأثر قبل الإصدار v1.2.7؛ تم إصلاحه في الإصدار v1.2.7.

بند Node.js هو الذي يحدد أسبوع معظم الناس. فالخدمة العاملة على 22.22.x تكون مكشوفة عبر حزمة HTTP الخاصة بها حتى لو لم يذكر كود تطبيقها Brotli قط، لأن فك الضغط يحدث قبل استدعاء المعالج الخاص بك. وهذا يفسر أيضًا الأسماء الثلاثة التي ألصقتها الصناعة به: Node2Shell لمسار Node، وHTTP2Shell لمسار الوسيط الذي وثّقته Check Point، وBrotli2Shell من JFrog للصورة الأوسع.

لماذا يُعد "91%" الرقم الذي يجب الجدال بشأنه؟

تصف أرقام Wiz بيئات السحابة لدى عملاء Wiz، لا الإنترنت. إنّ عدّ البيئات التي تحتوي في مكان ما على مكتبة تنطوي على ثغرة ليس عدًّا للخدمات القابلة للاستغلال، والفرق كبير: فوجود Brotli مضمّن داخل تطبيق سطح مكتب لا يفكّ ضغط مدخلات غير موثوقة يُعد اكتشافًا لا ثغرة. أما النسخة المفيدة من الإحصائية فهي أضيق — الخدمات التي تقبل مدخلات مضغوطة من مصادر غير موثوقة، وهي في الأساس كل نقطة نهاية HTTP عامة تنتهي بـ code>br/code>.

هناك أمران يجعلان الاستغلال محتملاً لا نظرياً: إدراج CISA للثغرة في كتالوج KEV يشير ضمنًا إلى استغلال تمت ملاحظته، كما سجّل مشغلو مصائد العسل محاولات. وعندما تنتقل ثغرة ما إلى خانة الاستغلال في البرية، يتوقف الموعد النهائي لتطبيق التصحيح عن كونه تقويم ضبط التغييرات الخاص بك، ويصبح ملك شخص آخر.

الاكتشاف هو الجزء ذو عمر النصف الأطول.

وجد فريق الأمن لدى نموذج رائد ثغرةً في سلامة الذاكرة داخل مكتبة فك ضغط قرأها آلاف الأشخاص على مدى عقد. هذه ليست حكاية عن براعة مورّد واحد؛ بل هي بيان عن التغطية. لقد وُجّه التحليل الساكن نحو Brotli لأعوام، وتوجد أُطر لاختبار التمويه، وقد نجت الثغرة من كليهما — بينما عثر عليها وكيل مصمم لقراءة الشيفرة بقصد، وأنتج إصلاحًا قبِلته الجهة upstream.

اللا تماثل يقطع في الاتجاهين معًا. القدرة ذاتها التي تكشف هذه الفئة من الأخطاء ستكشفها في الشيفرة التي تُطلقها. والسؤال المطروح على كل من يشتغل بالبرمجة الوكيلية ليس ما إذا كان الوكيل قادرًا على رصد كتابة خارج حدود الذاكرة؛ بل ما إذا كان هذا الاكتشاف سيصل إليك قبل أن يصل إلى أي شخص آخر.

ما يجب فعله، بالترتيب الذي يهم

• طبّق التحديثات على بيئات التشغيل التي تشغّلها فعليًا. قائمة المكتبات أعلاه هي المصدر؛ ابدأ بتلك التي تُنهي حركة المرور العامة.

• ثم ابحث عن النسخ المضمّنة. فصور الحاويات الأساسية والثنائيات الثابتة وبنيات WASM وحزم اللغات (wheels) يحمل كل منها نسخته الخاصة من Brotli، ولن يظهر أي منها في تدقيق مدير الحزم للتطبيق. وقد نُشر هذا الأسبوع ماسح جرد على مستوى المستودع يجوب نظام الملفات ويقيّم كل نسخة من Node وBun وBrotli يجدها، وهو بداية أسرع من اختراع واحد.

• أعد البناء بدلًا من الترقيع حيثما أمكنك. فاستبدال مكتبة مرتبطة ارتباطًا ساكنًا داخل مُخرَج مبني هو الموضع الذي يُشحن فيه الناس عن غير قصد ملفًا ثنائيًا نصفَ مُصلَح.

• إذا كنت تشغّل Envoy أو Istio كحافة، فتعامل مع إصلاحات الوكيل على أنها أعلى أولوية في المجموعة: فالوكيل يفكّ الضغط نيابةً عن كل ما يقع خلفه.

• افحص بيئة .NET لديك بشكل منفصل. تغطّي حزمة التصحيح من Microsoft كلاً من .NET وVisual Studio، والإصدار الصحيح هو تحديث لوقت التشغيل وليس تغييرًا في مرجع الحزمة.

أين يقع هذا بالنسبة لقرائنا

معظم ما تغطيه هذه المدونة هو قدرة النماذج والسعر والتوجيه. وينتمي هذا إلى هنا بسبب سطر واحد: فقد اكتشف العيبَ وكيلُ ذكاء اصطناعي، وفئة النظام التي تجد مثل هذه الأخطاء هي فئة النظام التي يربطها قراؤنا في خطوط أنابيبهم. إن وكيل فحص المستودعات الذي يعمل في CI ضد تبعياتك أصبح الآن ضابطًا أمنيًا، وهو نفسه وقت تشغيل الوكيل الذي يكتب شفرتك.

يقوم Agent Firewall من OrcaRouter بتقييم استدعاءات الأدوات وMCP قبل تنفيذها، وهو الضابط الذي يحدّ من نطاق التأثير المحتمل للوكيل؛ لكنه لا يجعل نتائج الوكيل صحيحة، وليس في هذه الثغرة CVE أي ادعاء بأن توجيه نموذج ما يقلّل من مخاطر سلسلة التوريد. أما الدرس المفيد من هذا الأسبوع فهو أضيق نطاقًا وأكثر قابلية للتحقق: إذا منحت وكيلًا صلاحية قراءة مستودع للعثور على الأخطاء، فتحقق من أن الرقع التي يقترحها مثبّتة على إصدارات محددة، وتحقق من أن بيئة التشغيل التي تقوم عليها حزمتك الخاصة قد تجاوزت 1.0.3–1.2.0.

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

ملاحظة حول المصادر: مصفوفة الإصدارات المتأثرة والمُصلحة، وقائمة بيئات التشغيل، وأرقام التعرّض 91%/82% مأخوذة من ملخّص الاستشارة الخاص بـ Wiz المقروء في 30 أكتوبر 2026، أما الإصدارات المُصلحة فهي الإصدارات الصادرة عن المشاريع نفسها. ودرجة 9.2 في CVSS v4 مأخوذة من سجل CVE. ويُنسَب فضل الاكتشاف إلى Khai Tran وSylvie Mayer من OpenAI Codex Security، وفقًا لتقرير Wiz وإشادات المصدر الأعلى. أما إدراج CISA في قائمة KEV وترقيع Microsoft لـ .NET فهما إعلانان صادران عن المنظمتين المعنيتين؛ ولم يُقرأ أيٌّ منهما هنا كمستند أوليّ عدا ملخّص الاستشارة. ووصف ماسح الجرد هو الوصف الخاص بمشروع GitHub تابع لجهة خارجية.