
GitLabのAI Gatewayは、細工されたフロー設定によってプロンプトサンドボックスからの脱出を許してしまった
- OrcaNEWOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 100万トークンあたり · 13 tok/s
- deepseekNEWDeepSeek: DeepSeek V4.1 Flash 10172026-10-1745知能
- DeepSeekNEWDeepSeek: DeepSeek V4.1 Flash2026-10-1740知能
- OrcaNEWOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 100万トークンあたり · 155 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952知能
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856知能
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 100万トークンあたり · 971 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238知能
- OpenAIOpenAI: GPT-6 Sol2026-09-2248知能
- AnthropicAnthropic: Claude Opus 5.52026-09-2258知能
- xAIGrok 4.72026-09-2146知能
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 100万トークンあたり · 104 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 100万トークンあたり · 964 tok/s
- OpenAIOpenAI: GPT-6 Astra2026-09-0453知能77コーディング
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241知能76コーディング
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245知能76コーディング
- AnthropicAnthropic: Claude Fable 5.12026-09-0153知能82コーディング
- TencentTencent: Hy4 preview2026-08-28$0.83 / $2.50 100万トークンあたり · 49 tok/s
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 100万トークンあたり · 100 tok/s
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642知能72コーディング
2026年10月2日、GitLabはAI Gateway(GitLabインスタンスと、Duo機能が呼び出す言語モデルとの間でリクエストを中継するミドルウェア)の重大なパッチリリースを公開し、これにCVE-2026-90970と命名して10点満点中9.9と評価した。GitLabの言葉を借りれば、この欠陥は「Duo Agent Platformへのアクセス権を持つ認証済みユーザーが、細工されたフロー設定を介してプロンプトテンプレートのサンドボックスから脱出し、AI Gateway上で任意のコマンド実行につながる」ことを可能にした可能性があった。対応が必要だったのは、セルフホスト型AI Gatewayを運用している組織だけだった。GitLabは、GitLab.com、GitLab Dedicated、およびGitLabホスト型ゲートウェイを利用するセルフマネージド顧客向けに同社が運用するゲートウェイをすでに修正済みであり、その旨をアドバイザリで述べていた。GitLabの通知には、この脆弱性が実際に悪用されたとは記載されていない。また、同日に米国サイバーセキュリティ・インフラストラクチャー安全保障局がCVEレコードに添付した評価では、悪用状況は「なし」と記載されている。この発見の功績は、invisiblemeerkatとして知られるHackerOneの研究者に帰されている。 GitLabのアドバイザリ、NVDの記録、およびその後続いた報道は、脆弱性の内容とどのバージョンに含まれていたかについて互いに一致している。また、不明な点、すなわち誰かが実際に悪用したかどうかについても同様に一致している。この記録は、AIインシデントアーカイブに掲載されている他の文書化されたエージェントインフラストラクチャの脆弱性と並んでおり、各エントリにはそれぞれの情報源、重大度、信頼度グレード、異議ありフラグが付されている。
勧告が実際に述べていることと、それが省いていること
このアドバイザリは短い。GitLabのドキュメントサイトで「GitLab AI Gateway Critical Patch Release: 19.2.4, 19.3.2, and 19.4.1」というタイトルで公開されており、1件のセキュリティ修正を挙げている。見出しは「カスタムフロープロンプトテンプレートにおける不適切な中和の問題がAI Gatewayに影響」で、Criticalと分類されている。CVSS 3.1ベクターはAV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H——ネットワーク到達可能、攻撃複雑性は低、必要な権限は低、ユーザー操作は不要、スコープは変更、機密性・完全性・可用性への影響は高——と示されている。このベクターは読む価値がある。攻撃者について正確だからだ。権限は低いが、それでも権限は必要である。アドバイザリは「Duo Agent Platformへのアクセス権を持つ認証済みユーザー」と述べてそこで終わっている。ロール、権限、あるいは自身の「特定の条件下で」という表現が指す条件を明記していない。
これは概念実証を公開しておらず、細工されたフロー設定についても説明しておらず、直ちに更新できないゲートウェイ向けの回避策も提供していない。The Hacker Newsは10月2日の記事で同じ欠落を指摘し、運用上重要となる点を一つ追加している。すなわち、このアドバイザリには、ゲートウェイがパッチ適用前に攻撃を受けたかどうかを確認する方法が示されていない。翌日に執筆したSecurity Affairsも、同じ欠落を記録している。
CVEに付随するCommon Weakness EnumerationのエントリはCWE-1336、テンプレートエンジンで使用される特殊要素の不適切な中和です。GitLabのアドバイザリではJinjaという語は一切使われていません。AI Gateway自身のリポジトリのドキュメントでは使われています。そのプロンプトレジストリのドキュメントは、プロンプト設定ファイルが「userやsystemなど複数のロールに対してJinja式をサポートする」と説明し、Promptクラスが「入力引数でプロンプトテンプレートを補間するためにJinjaを使用する」と説明しています。CVEが説明するギャップは、その種のエンジンが有名なあのギャップです——ユーザー提供のテキストが表示されるのではなく評価されるテンプレートに到達してしまうことです。
なぜこの特定のホスト上のコマンドが9.9の価値があるのか
AI Gateway はサイドカーではありません。GitLab のセルフホスト型ドキュメントによると、AI Gateway は GitLab からリクエストを受け取り、プロンプトを組み立て、モデルバックエンド(vLLM サーバー、Amazon Bedrock、Azure OpenAI、または外部プロバイダー)と通信します。完全にセルフホストされたデプロイでは、プロンプトと応答を組織自身のネットワーク内に留めるコンポーネントです。GitLab の AI Gateway インストールガイドは、管理者に対して署名鍵ペアを生成し、その2つの部分を 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 access」以外にロールが示されていないと指摘している。自分がどの程度の影響を受ける可能性があるかを見積もる読者は、ドキュメントを製品の権限モデルとみなし、アドバイザリの沈黙はまさに沈黙であって矛盾ではないと扱うべきだ。
確立済み、および未確立
このレコード自体のフィールドは上記のすべてと整合しており、アドバイザリに含まれない事柄を何も追加していません。以下に示すのは、一行の要約からは読者が得られない内訳です。
• 確認:GitLab AI Gateway におけるクリティカル重大度の脆弱性。2026年10月2日に公表、CVSS 9.9、CWE-1336。認証済みの Duo Agent Platform ユーザーが細工されたフロー設定を介して到達可能であり、ゲートウェイホスト上でのコマンド実行を引き起こす。
• 確定: 影響範囲 — 18.1.6以降19.2.4より前のすべてのAI Gatewayバージョン、19.3以降19.3.2より前、19.4以降19.4.1より前 — および修正済みバージョン19.2.4、19.3.2、19.4.1。
• 確認済み: GitLabホスト型ゲートウェイは公開前にパッチ済みで、その顧客は対応不要です。セルフホストの運用者にはリリース投稿前に直接連絡済みであり、GitLabはアドバイザリ自体でそう述べています。
• 確認済み: 報告者クレジット(invisiblemeerkat)、および実環境での悪用に関する記述がないこと。
• 未確定:誰かがそれを悪用したかどうか。2026年10月2日付でNVDレコードに表示されているCISA SSVC評価では、悪用は「none」、自動化可能は「no」、技術的影響は「total」とされている。CISA Known Exploited Vulnerabilitiesカタログの2026年10月20日改訂版にはCVE-2026-90970は掲載されておらず、これは直接確認した。FIRSTのEPSSモデルでは、2026年10月21日時点で今後30日以内に悪用される確率は0.94パーセントだった — 低く、ゼロではない。
• 未確認:セルフホスト型ゲートウェイがいくつ存在するか、何台が露出していたか、またパッチ適用前に攻撃を受けたものがあるかどうか。この記録内のどの情報源も件数を示しておらず、GitLabのアドバイザリにも検出方法は記載されていない。

影響を受ける範囲、および修正が記載されていないバージョン
バージョンの計算は、3つの修正済みリリースが示すほど整然としたものではない。影響範囲は18.1.6から始まり、19.2.4未満のどの系列にも修正済みリリースは公開されていない。したがって、18.1.6から19.1系列までのすべてのゲートウェイは、明示された影響範囲内にありながら、そのためのパッチ版が名指しされていない。The Hacker Newsは同じ帰結と、それに続く疑問を指摘している。GitLabのインストールドキュメントは管理者に対し、自身のGitLabマイナーバージョンと一致するバージョンのゲートウェイイメージを実行するよう指示しており、アドバイザリは、19.2.4のゲートウェイがGitLab 19.1以前に対して動作するのか、また古い系列向けの修正が計画されているのかについても述べていない。The Hacker Newsが指摘するように、GitLabのサポート対象バージョンポリシーでは現在、19.4、19.3、19.2が列挙されている——修正を受けたのと同じ3系列である。
修復はパッチではなくコンテナの差し替えです。ゲートウェイは独自のDockerイメージまたはHelmチャートとして提供されます。GitLabのインストールガイドでは、実行中のコンテナを停止して削除し、self-hosted-vX.Y.Z-eeタグ付きの新しいイメージをプルし、環境変数を維持したまま再度起動する手順が説明されています。Helmデプロイでは、チャートのimageフィールドでタグを設定します。アドバイザリもインストールガイドも、攻撃を受けたゲートウェイとクリーンなゲートウェイを区別できる署名や指標を提供していません。

8か月前の同じ種類のバグ
GitLab が AI Gateway のテンプレートインジェクションに対して 9.9 を出したのは初めてではありません。2026年2月6日、同社は以下に対応する AI Gateway 18.6.2、18.7.1、18.8.1 をリリースしました: CVE-2026-1868。このアドバイザリでは「Insecure Template expansion issue」と説明され、Duo Workflow Service コンポーネントが「細工された Duo Agent Platform Flow 定義を介したユーザー提供データの安全でないテンプレート展開に対して脆弱」で、ゲートウェイ上でのサービス拒否やコード実行に利用可能でした。CVSS ベクトルは10月のものと文字単位で同一で、CWE も同様です。報告者は異なり、GitLab チームメンバーの Joern Schneeweisz によって社内で発見されました。
10月のアドバイザリには2月のものへの言及がなく、The Hacker Newsはその点を明示している。両者が根本原因を共有しているのか、効果が持続しなかった修正なのか、それとも単に言語と脅威モデルを同じくするだけなのかは、どちらの公開文書も答えていない。記録に残っているのは、AIミドルウェアコンポーネント内のテンプレートエンジンが、同じ年に同じスコアの重大なコマンド実行アドバイザリを今や2件生み出し、2件目は外部の研究者が見つける必要があったということだ。
何が変わり、運営者には何を決めることが残されているのか
具体的な変更は、3つのイメージタグと直接連絡の一巡です。GitLabは公開前にセルフホスト型ゲートウェイの顧客に連絡したと述べており、アドバイザリは修正済みイメージと同日に公開されました。それ以外のすべて、つまりGitLab.com、GitLab Dedicated、およびGitLabホスト型ゲートウェイを参照するセルフマネージドインスタンスについては、修正はすでにサーバー側で適用済みであり、GitLabの説明では何も必要ありませんでした。
セルフホスト運用者にとって、この判断は通常のパッチサイクルよりも狭く、居心地の悪いものになります。すぐに移行できないゲートウェイに対する回避策はありません。ホストが事前に侵害されていたかどうかを確定するための公開済みの方法は存在せず、つまり事後に残された唯一の選択肢はごく普通のものです。コンテナを完全性が証明されていないシステムとして扱い、通常の動作から外れた実行の兆候を探すことになります。さらに、18.x または 19.1 のゲートウェイについては、アドバイザリは対象バージョンを一切示していません。これは The Hacker News が報じている省略であり、GitLab の通知では触れられていません。
アーカイブ自体の分類は、ベンダーの分類より意図的に狭くとられている。アーカイブはこの項目を脆弱性として記録しており、信頼度A、情報源は一致、異議なし、実際の被害は記録されておらず、深刻度フィールドはGitLabとNVDの「critical」に対して「high」である。これらは異なる問いへの答えである。スコアはその欠陥が何を許すかを表し、アーカイブの評価は実際に何が起きたことが分かっているかを表す。公開記録上は何も起きていない——悪用も、被害者も、インシデント報告もない。この項目の価値は、CVE番号と修正版を伴って、プロンプトテンプレートが、企業向けAI機能が依存するミドルウェア内でどのようにコマンドラインになったのかを正確に記録している点にある。

