رسم توضيحي تقني تجريدي على خلفية كحلية داكنة: توجد حاوية مربعة شفافة تمثّل بيئة اختبار معزولة (sandbox) فوق كومة من لوحات خادم مستديرة الحواف. داخل الحاوية، تتوهج مجموعة صغيرة من رموز أقواس القوالب الشاحبة؛ وقد انزلق أحد الأقواس عبر شق شعري في جدار الحاوية، ثم استمر كخط كهرماني رفيع ينزل إلى كومة الخوادم، حيث يتفرّع إلى عدة ضربات قصيرة تشبه الأوامر. وتوجد بجانبها حاوية ثانية سليمة ومغلقة. لا يظهر أي نص أو أشخاص أو شعارات مؤسسات. وشعار OrcaRouter مركّب في الزاوية السفلى اليمنى.
AI Safety Incidents

سمح AI Gateway من GitLab لإعداد Flow مُصمَّم بالخروج من صندوق الرمل الخاص بالمطالبات.

الكاتب

Rowan Sterling

تاريخ النشر

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

في 2 أكتوبر 2026، نشرت GitLab إصدار تصحيح حرج لـ AI Gateway — الوسيط الذي ينقل الطلبات بين نسخة GitLab ونماذج اللغة التي تستدعيها ميزات Duo — وسمّته CVE-2026-90970 وصنّفته 9.9 من 10. ووفقاً لكلمات GitLab نفسها، كان الخلل قد يسمح "لمستخدم مُصادَق عليه لديه وصول إلى Duo Agent Platform بالهروب من بيئة عزل قوالب الموجّهات عبر إعداد تدفّق مُصمَّم خصيصاً، مما يؤدي إلى تنفيذ أوامر تعسفية على AI Gateway." ولم تكن بحاجة إلى التحرّك سوى المؤسسات التي تشغّل بوابة AI Gateway مستضافة ذاتياً: فقد كانت GitLab قد أصلحت بالفعل البوابات التي تديرها لـ GitLab.com وGitLab Dedicated والعملاء ذوي الإدارة الذاتية الذين يستخدمون بوابة مستضافة من GitLab، وأعلنت ذلك في التنبيه. ولا يذكر إشعار GitLab أن الخلل قد استُغلّ يوماً ما، كما أن التقييم المرفق بسجل CVE من وكالة الأمن السيبراني وأمن البنية التحتية الأمريكية في اليوم نفسه يدرج الاستغلال بوصفه "none". وعاد الفضل في الاكتشاف إلى باحث HackerOne المعروف باسم invisiblemeerkat. يتّسق تنبيه GitLab وسجل NVD والتقارير التي تلته مع بعضها بعضاً بشأن ماهية الخلل والإصدارات التي حملته؛ وهي متّسقة بالقدر نفسه بشأن ما ليس معروفاً، وهو ما إذا كان أي شخص قد استخدمه يوماً. ويأتي هذا السجل إلى جانب الثغرات الأخرى الموثّقة في البنية التحتية للوكلاء في أرشيف حوادث الذكاء الاصطناعي، حيث يحمل كل مدخل مصادره ودرجة خطورته ودرجة ثقته وعلامة كونه محل نزاع.

ما الذي يقوله التحذير فعليًا، وما الذي يغفله

التنبيه موجز. نُشر على موقع توثيق GitLab بعنوان «إصدار تصحيحي حرج لـ GitLab AI Gateway: 19.2.4 و19.3.2 و19.4.1»، ويسرد إصلاحًا أمنيًا واحدًا بعنوان «مشكلة تحييد غير سليم في قالب موجه التدفق المخصص تؤثر على AI Gateway»، ومصنّفًا بدرجة حرج. ويورد متجه CVSS 3.1 على النحو التالي: AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H — يمكن الوصول إليه عبر الشبكة، وتعقيد الهجوم منخفض، والامتيازات المطلوبة منخفضة، ولا يتطلب تفاعل المستخدم، والنطاق متغيّر، والتأثير مرتفع على السرية والسلامة والتوافر. يستحق هذا المتجه القراءة لأنه دقيق بشأن المهاجم: امتيازات منخفضة، لكنها امتيازات مع ذلك. يقول التنبيه «مستخدم موثّق لديه صلاحية الوصول إلى Duo Agent Platform» ثم يتوقف عند هذا الحد. ولا يسمّي الدور أو الإذن أو الظروف التي تشير إليها عبارته الخاصة «في ظل ظروف معينة».

إنه لا ينشر إثبات مفهوم، ولا يصف إعداد التدفق المصمم، ولا يقدم حلًا بديلًا للبوابات التي لا يمكن تحديثها على الفور. وتلاحظ Hacker News في تقريرها الصادر في 2 أكتوبر الغيابات نفسها، وتضيف غيابًا مهمًا من الناحية التشغيلية: فلا يقدم التنبيه الأمني أي وسيلة للتحقق مما إذا كانت البوابة قد تعرضت لهجوم قبل تثبيت الرقعة. وتسجل Security Affairs، في كتابتها في اليوم التالي، الفجوات نفسها.

إن مدخل تعداد نقاط الضعف الشائعة المرفق بـ CVE هو CWE-1336، أي التحايد غير السليم للعناصر الخاصة المستخدمة في محرك قوالب. ولا يستخدم تنبيه GitLab كلمة Jinja مطلقًا. أما وثائق مستودع AI Gateway نفسه فتستخدمها: إذ تصف وثيقة سجل المطالبات الخاصة به ملفات تكوين المطالبات بأنها "تدعم تعبير Jinja لأدوار متعددة مثل المستخدم والنظام"، وتصف فئة Prompt بأنها "تستخدم Jinja لاستبدال قوالب المطالبات بوسائط الإدخال". والثغرة التي يصفها CVE هي تلك التي يشتهر بها هذا النوع من المحركات — وصول نص يقدمه المستخدم إلى قالب تتم تقييمه بدلًا من طباعته.

لماذا يستحق أمرٌ على هذا المضيف تحديدًا 9.9

AI Gateway ليس مكوّن sidecar. وفقًا لوثائق GitLab للاستضافة الذاتية، فإنه يتلقى الطلبات من GitLab، ويجمّع المطالبات، ويتواصل مع الواجهة الخلفية للنموذج — خادم vLLM أو Amazon Bedrock أو Azure OpenAI أو مزوّد خارجي — وفي نشر مستضاف ذاتيًا بالكامل يكون هو المكوّن الذي يُبقي المطالبات والردود داخل شبكة المؤسسة الخاصة. كما يوجّه دليل تثبيت AI Gateway من GitLab المسؤولين إلى إنشاء زوج مفاتيح توقيع وتمرير الجزأين إلى الخدمة كمتغيرات بيئة، باسم AIGW_SELF_SIGNED_JWT__SIGNING_KEY وAIGW_SELF_SIGNED_JWT__VALIDATION_KEY (مع مكافئات Duo Workflow). ويوضح Security Affairs النتيجة صراحةً: أن تنفيذ الأوامر على البوابة يضع المهاجم على مضيف يحتفظ بمواد توقيع JWT ويقع على المسار بين نسخة GitLab والبنية التحتية للنموذج.

هذا هو الفرق بين الهروب من بيئة العزل في نموذج تجريبي والهروب منها في بيئة الإنتاج. لا يحتاج الهروب إلى الوصول إلى نموذج؛ بل يحتاج إلى الوصول إلى العملية التي تحتفظ بالمفاتيح التي تُوقَّع بها نداءات النموذج.

توثيق منتج GitLab، بصورة منفصلة عن التنبيه الأمني، ينص على أن إنشاء تدفق مخصص أو تحريره يتطلب دور Maintainer أو Owner في المشروع المُدير، وأن تشغيل أحدها يتطلب دور Developer أو أعلى. ولا يؤكد التنبيه الأمني ذلك الربط، وتشير The Hacker News إلى أنه لا يُسمّى أي دور يتجاوز "الوصول إلى Duo Agent Platform". وينبغي للقارئ الذي يقدّر مدى تعرضه أن يعامل التوثيق بوصفه نموذج الأذونات الخاص بالمنتج، وأن يعامل صمت التنبيه الأمني على أنه صمت فحسب: لا تناقض.

مُثبَت، وغير مُثبَت

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

• مُثبت: ثغرة بالغة الخطورة في GitLab AI Gateway، أُفصح عنها في 2 أكتوبر 2026، بدرجة CVSS 9.9، وCWE-1336، يمكن الوصول إليها من قِبل مستخدم مُصادَق عليه في Duo Agent Platform عبر إعداد تدفق مُصمَّم خصيصًا، مما يؤدي إلى تنفيذ أوامر على مضيف البوابة.

• تم تحديد: النطاق المتأثر — جميع إصدارات AI Gateway من 18.1.6 قبل 19.2.4، و19.3 قبل 19.3.2، و19.4 قبل 19.4.1 — والإصدارات المُصلحة، 19.2.4 و19.3.2 و19.4.1.

• مؤكد: تم ترقيع البوابات المستضافة لدى GitLab قبل النشر ولا يحتاج عملاؤها إلى اتخاذ أي إجراء؛ كما تم التواصل مباشرة مع مشغّلي الاستضافة الذاتية قبل نشر منشور الإصدار، وهو ما تذكره GitLab في الإشعار نفسه.

• المُثبت: نسبة الفضل في الإبلاغ إلى invisiblemeerkat، وغياب أي بيان عن استغلاله في البرية.

• لم يُثبَت:ما إذا كان أي شخص قد استغلها. يصنّف تقييم CISA SSVC المؤرخ 2 أكتوبر 2026 والظاهر في سجل NVD الاستغلال بأنه «لا شيء»، والقابلية للأتمتة بأنها «لا»، والتأثير التقني بأنه «كلي»؛ ولم يُدرِج كتالوج CISA Known Exploited Vulnerabilities الثغرة CVE-2026-90970 في مراجعته المؤرخة 20 أكتوبر 2026، وهو ما تحققت منه مباشرة. وقد وضع نموذج FIRST EPSS احتمال الاستغلال خلال الأيام الثلاثين التالية عند 0.94 بالمئة في 21 أكتوبر 2026 — منخفض، وليس صفرًا.

• غير مؤكد: عدد البوابات المستضافة ذاتيًا الموجودة، وعدد ما كان منها مكشوفًا، أو ما إذا كان أيٌّ منها قد تعرّض للهجوم قبل الترقيع. لا يقدّم أي مصدر في هذا السجل عددًا، ولا يتضمّن إشعار GitLab أي طريقة للكشف.

HTML card headed 'CVE-2026-90970 · GitLab AI Gateway', titled 'What the record establishes — and what it does not', subtitled with the sources: the GitLab AI Gateway advisory of 2 October 2026 and the NVD record for CVE-2026-90970, with the archive classification confidence A, not disputed, real harm recorded as false. Two columns run side by side. The left column, headed 'Established' in blue, lists eight items: CVSS 9.9 critical with the vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H; CWE-1336, improper neutralisation of special elements used in a template engine; an authenticated user with Duo Agent Platform access escaping the prompt template sandbox through a specially crafted flow configuration; arbitrary command execution on the AI Gateway; affected AI Gateway 18.1.6 before 19.2.4, 19.3 before 19.3.2 and 19.4 before 19.4.1; fixed in 19.2.4, 19.3.2 and 19.4.1, released 2 October 2026; GitLab-hosted gateways already patched; and credit to the HackerOne researcher invisiblemeerkat through coordinated disclosure. The right column, headed 'Not established' in amber, lists eight items: no exploitation reported, since the advisory does not say the flaw was used in attacks; CISA's SSVC assessment of 'none', dated 2 October 2026 in the NVD entry, with automatable 'no' and technical impact 'total'; no proof of concept and no technical detail of the crafted flow configuration; no exposure count, since nothing in the cited sources says how many self-hosted gateways exist or ran an affected version; no detection method; no workaround; no named role beyond 'Duo Agent Platform access'; and no fix below 19.2.4. A footer reads 'Facts as published by GitLab and NVD. Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

النطاق المتأثر، والإصدارات التي لم تُدرج لها إصلاحات

إن حساب الإصدارات أقل إحكامًا مما توحي به الإصدارات الثلاثة المُصلحة. يبدأ النطاق المتأثر عند 18.1.6، ولا يُنشر أي إصدار مُصلح على أي خط إصدار أدنى من 19.2.4. وعليه، تقع كل بوابة من 18.1.6 وحتى سلسلة 19.1 داخل النطاق المتأثر المعلن، دون تسمية نسخة مُرقّعة لها. وتنبه Hacker News إلى النتيجة نفسها وإلى الأسئلة التي تليها: تُخبر وثائق تثبيت GitLab المسؤولين بتشغيل صورة البوابة التي يطابق إصدارها الإصدار الثانوي من GitLab لديهم، ولا يوضح التنبيه ما إذا كانت بوابة 19.2.4 تعمل مع GitLab 19.1 أو إصدارات أقدم، ولا ما إذا كانت هناك إصلاحات مخطط لها للخطوط الأقدم. وتُدرج سياسة الإصدارات المدعومة في GitLab، كما تلاحظ Hacker News، حاليًا 19.4 و19.3 و19.2 — وهي الخطوط الثلاثة نفسها التي تلقت إصلاحات.

تتمثل المعالجة في استبدال الحاوية بدلًا من تطبيق رقعة: إذ تُشحن البوابة كصورة Docker خاصة بها أو كمخطط Helm مستقل. ويوضح دليل التثبيت الخاص بـ GitLab خطوات إيقاف الحاوية العاملة وإزالتها، وسحب الصورة الجديدة ذات الوسم self-hosted-vX.Y.Z-ee، ثم تشغيلها من جديد مع الحفاظ على متغيرات البيئة كما هي؛ أما عمليات النشر عبر Helm فتُعيّن الوسم في حقل image داخل المخطط. ولا تقدّم الاستشارة الأمنية ولا دليل التثبيت أي توقيع أو مؤشر يميّز بوابة تعرّضت للهجوم من بوابة سليمة.

HTML card headed 'GitLab AI Gateway · affected and fixed', titled 'Three fixed releases, and older lines with none', subtitled 'Version ranges as published in the GitLab advisory of 2 October 2026. The advisory does not say whether fixes for the 18.x and 19.1 lines are planned.' Four horizontal bars follow, one per release line. The first, labelled '18.1.6 to 19.1' with the note 'no fixed release listed', is a single hatched amber bar reading 'affected, no patched version named' across the full width. The second, labelled '19.2 line' with the note 'affected before 19.2.4', is a short amber segment reading '18.1.6 – 19.2.3' followed by a blue segment reading 'fixed in 19.2.4'. The third, labelled '19.3 line' with the note 'affected before 19.3.2', is an amber segment reading '19.3.0 – 19.3.1' followed by a blue segment reading 'fixed in 19.3.2'. The fourth, labelled '19.4 line' with the note 'affected before 19.4.1', is an amber segment reading '19.4.0' followed by a blue segment reading 'fixed in 19.4.1'. A legend below reads 'Affected range' and 'Patched release', with the note 'GitLab-hosted AI Gateways were patched before publication.' A footer reads 'Card rendered by OrcaRouter.' The OrcaRouter logo is composited in the bottom-right corner.

نفس فئة الأخطاء، قبل ثمانية أشهر

ليست هذه المرة الأولى التي تصدر فيها GitLab تقييم 9.9 لثغرة حقن القوالب في AI Gateway. في 6 فبراير 2026، أصدرت AI Gateway 18.6.2 و18.7.1 و18.8.1 بشأن CVE-2026-1868، التي وُصفت في ذلك التنبيه بأنها "مشكلة توسيع قالب غير آمن" حيث كان مكوّن Duo Workflow Service "عرضةً لتوسيع قالب غير آمن لبيانات يوفّرها المستخدم عبر تعريفات Duo Agent Platform Flow المصممة ببراعة"، ويمكن استخدامها لحرمان الخدمة أو تنفيذ الشيفرة على البوابة. إن متجه CVSS مطابق لمتجه أكتوبر، حرفًا بحرف، وكذلك CWE. وكان المبلّغ مختلفًا: فقد اكتُشفت تلك الثغرة داخليًا، بواسطة عضو فريق GitLab Joern Schneeweisz.

لا يذكر التنبيه الصادر في أكتوبر التنبيه الصادر في فبراير، وقد صرّحت The Hacker News بذلك صراحةً. أما ما إذا كان الاثنان يتشاركان سببًا جذريًا واحدًا، أو إصلاحًا لم يصمد، أو مجرد لغة ونموذج تهديد، فليس هذا ما تجيب عنه أي من الوثيقتين العامتين. وما هو مسجّل أن محرك قوالب في مكوّن وسيط للذكاء الاصطناعي قد أنتج الآن تنبيهين حرجين بشأن تنفيذ الأوامر بالتقييم نفسه في السنة نفسها، وأن الثاني استلزم باحثًا خارجيًا للعثور عليه.

ما الذي تغيّر، وما الذي بقي للمشغّلين ليقرّروه

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

بالنسبة لمشغّل مستضاف ذاتيًا، يكون القرار أضيق وأقل راحة من دورة ترقيع عادية. لا يوجد حل بديل لبوابة لا يمكن نقلها فورًا. ولا توجد طريقة مُصدَرة لتحديد ما إذا كان المضيف قد اختُرِق مسبقًا، ما يعني أن الخيار الوحيد بأثر رجعي هو الخيار العادي: التعامل مع الحاوية كنظام لم تُثبَت سلامته، والبحث عن علامات تنفيذ خارج سلوكها الطبيعي. وبالنسبة للبوابات على 18.x أو 19.1، لا تسمّي الاستشارية أي إصدار مستهدف على الإطلاق — وهو سهو يورده The Hacker News ولا يعالجه إشعار GitLab.

تصنيف الأرشيف نفسه أضيق عمدًا من تصنيف المورّد. فهو يسجّل هذا المدخل باعتباره ثغرة أمنية، بدرجة ثقة A مع اتفاق المصادر وعدم التنازع عليه، ودون تسجيل أي ضرر حقيقي، ومع حقل خطورة قيمته "high" مقابل "critical" لدى GitLab وNVD. هذه إجابات عن أسئلة مختلفة: فالدرجة تصف ما قد تسمح به العلة، بينما يصف تقييم الأرشيف ما يُعرف أنه حدث. وفي السجل العام، لم يحدث شيء — لا استغلال، ولا ضحايا، ولا تقرير حادث. وتكمن قيمة المدخل في أنه يوثّق، برقم CVE ونسخة مُصلحة، بالضبط كيف تحوّل قالب توجيه إلى سطر أوامر في البرمجيات الوسيطة التي تعتمد عليها ميزات الذكاء الاصطناعي المؤسسية.

Abstract illustration on a dark navy field: two rounded server racks stand on a plain surface. In front of them, a translucent panel etched with faint brace-shaped lines has a single hairline fracture running from its lower corner to the floor, and through that fracture a thin amber thread passes to a small glowing node at the base of the nearer rack. The second rack is untouched and unlit. No text, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.