GitLab が、自分のサーバで動かす自己ホスト型の AI Gateway について、CVSS 9.9 の深刻な欠陥を修正したと報じられている(The Hacker News)。報道によれば、GitLab Duo Agent を使えるログイン済みの利用者が、プロンプトテンプレートを処理するサンドボックスを抜け出し、Gateway のサーバ上で任意のコマンドを実行できたという。なお本紙は、元記事の本文と GitLab 自身の告知を直接確かめられていない。そのため CVE 番号、影響する版、修正された版はこの記事に書いていない。自己ホストで運用している組織は、GitLab のセキュリティ告知で該当する版を確認してほしい。
この件で重く見るべきなのは、穴の場所である。モデルがだまされたのでも、エージェントが勝手に権限を広げたのでもない。モデルに渡す文面を組み立てる層、つまりプロンプトテンプレートのサンドボックスそのものが、ログインした利用者からサーバのコマンド実行までをつなぐ道になっていたと報じられている。
9.9という点数が意味すること
CVSS で9.9が付くのは、たいてい次の条件がそろったときである。ネットワーク越しに攻撃でき、手順が単純で、特別な権限が要らないか、あっても低く、利用者の操作も要らない。そのうえで、影響が欠陥のある部品の外にまで及ぶ。報道の言う攻撃の条件は「ログイン済みであること」だけで、管理者の権限は要らない。これは、社内の誰か1人のアカウントが乗っ取られただけで、Gateway のサーバが丸ごと奪われうることを意味する。
AI Gateway は、GitLab のインスタンスとモデルの提供元のあいだに立つ中継の部品である。モデルの API の鍵や、Gateway 自身の認証情報、リクエストに乗ってくるコードの断片が、ここを通る。サーバでコマンドを実行されれば、それらがまとめて攻撃者の手に渡りうる。報道が「影響が部品の外にまで及ぶ」と評価したのは、この位置にあるためとみられる。
テンプレートは「データ」ではなく「コード」だった
エージェント基盤では、システムプロンプト、ツールの定義、会話の履歴、リポジトリから取ってきた文脈を、テンプレートエンジンで1つの文面に組み立ててからモデルに渡すことが多い。テンプレートエンジンには、条件分岐やループ、変数の参照といった、小さなプログラム言語の機能が備わっている。だからこそ、外から入ってきた文字列を評価するときはサンドボックスに閉じ込め、危ない属性や関数に手が届かないようにする。
今回報じられたのは、その囲いが破られたという事態である。具体的な手口は確認できていないが、構図ははっきりしている。Duo Agent の利用者が渡せる入力が、テンプレートとして評価される経路に届き、しかもサンドボックスの制限をすり抜けられた。ハーネス設計で開発者がふだん気にするのは、エージェントに何をさせないかである。ところが今回の欠陥は、そもそもエージェントを動かすための文面を作る段階にあった。
OWASP Agentic Top 10 が挙げる Excessive Agency(エージェントの権限過多)は、エージェントに渡した道具が強すぎることへの警告だった。今回の件はその手前で起きている。エージェントにどの権限を渡すかを決める前に、エージェントを組み立てる基盤のほうがサーバの権限を明け渡していたことになる。
同じ週に続いた「基盤側」の穴
この1週間で、エージェントを支える層の欠陥が続いて報告されている。10月3日には、公式の MCP Python SDK に、OAuth の資格情報を盗まれる欠陥(CVSS 7.5)が見つかったと伝えられた。ログイン画面は本物のまま、悪意あるサーバーがトークンの送り先を差し替えていたという。OpenAI が10月2日に更新した不具合報告のページにも、参照用ツールにコマンドを注入してソースファイルをコピーした事案が載っている。
モデルの賢さとも、アラインメントの出来とも関係がない点で、これらは共通している。モデルの周りに書かれた普通のソフトウェアが、昔ながらの注入とサンドボックスの脱出に弱かった。エージェントを本番で安全に動かす基盤(Agent Execution Infrastructure)への投資が増えているが、その基盤自身が攻撃面になる。
自己ホストを選んだ組織の宿題
自己ホスト型の Gateway を選ぶのは、コードやプロンプトを外に出したくない組織である。規制の厳しい業種や、政府系の利用者が多い。こうした組織では、GitLab が修正を出しても、自分でアップデートを当てるまで穴は開いたままになる。SaaS 版で提供元が一斉に直すのとは、事情が違う。
報道の内容から、当面やるべきことは3つ導ける。1つ目は、Gateway をすぐに修正版へ更新すること。2つ目は、Gateway のサーバが持つ鍵と認証情報を棚卸しし、悪用された恐れがあれば入れ替えること。3つ目は、Gateway の置き場所を見直し、社内の他のシステムへ横に移れないよう、通信先を絞ることである。悪用が確認されたかどうかは、本紙が確認できた範囲では分からない。
エージェント基盤のセキュリティは、モデルの振る舞いをどう縛るかという話として語られがちだった。しかし GitLab の件が示すのは、もっと地味で、それゆえ見落とされやすい事実である。プロンプトを組み立てる部品も、利用者の入力を評価して実行する場所だ。そこに張ったサンドボックスが1枚破れれば、ログインできる人なら誰でもサーバに手が届く。




