5件のAG-UI脆弱性にCVE|3件は修正PRが未統合

AIエージェントと利用者の画面をつなぐ通信の決まり(プロトコル)である AG-UI の TypeScript 向けの部品に、2026年11月1日(協定世界時)、CVE(脆弱性の共通番号)が5件まとめて付きました。番号は CVE-2026-120233 から 120237 までで、番号を割り当てた機関は脆弱性の情報を集める民間の団体 VulDB です。5件の報告者は VulDB の利用者 ez-lbz で、元の報告は8月25日に開発元のリポジトリへ公開の Issue として出されていました。
CVE の記載によると、影響を受けるのは「ag-ui の 0.0.58 まで」です。Issue では、報告者は npm で配られている@ag-ui/client の 0.0.58 で確かめたと書いています。5件のうち2件は9月に修正がマージされ、残る3件は11月2日の朝の時点で修正の変更(プルリクエスト、PR)が承認待ちのままです。
カメ先生AG-UI の、エージェントのサーバーとつなぐ側の部品に、CVE が5件まとめて付いたんだ。いちばん重く見られているのは、サーバーの返す転送の指示に従って、認証用の情報を別の送り先に渡しうる欠陥だよ。
カメ子5件とも、もう直っているんですか。
カメ先生2件は9月にマージ済みで、3件は修正PRが出ているけれど、まだ取り込まれていない。深刻度は5件とも低から中で、どれもつなぐ先のサーバーが悪意を持つか、乗っ取られている場合の話として報告されている。
カメ子直った2件と、直っていない3件に分かれている、ということですね。
- 11月1日、AG-UI の TypeScript 向けの部品に CVE が5件付いた。情報漏えい1件、入力の検証の不備1件、資源の消費3件で、深刻度は CVSS 3.1 で 4.3 から 6.3
- 対象は AG-UI でエージェントとつなぐ TypeScript の部品 @ag-ui/client。直近1週間の取得数は約200万回。2件は9月にマージ済み、3件は修正PRが承認待ち
- 未統合の3件がいつ直るか、影響する版の正確な範囲、開発元の見解、悪用の有無は、11月2日の朝の時点で公表されていない
AIの導入・活用、何から始めるべきかお悩みですか?
デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。
VulDB が11月1日に公開した5件の CVE
5件の CVE は、11月1日の協定世界時15時15分から17時30分までの間に、ほぼ15分から45分おきに公開されました。最初が CVE-2026-120233 で、最後が CVE-2026-120237 です。日本時間では11月2日の0時15分から2時30分にあたります。米国の脆弱性データベース NVD への掲載は、120233 が協定世界時16時18分でした。
5件の題名は、VulDB の決まった書き方で、部品の名前と欠陥の種類を並べたものです。120233 は「HttpAgent の情報漏えい」、120234 は「HTTP の通信部分の資源の消費」、120235 は「SSE の解析部分の資源の消費」です。120236 は「Transport Decoder の入力の検証」、120237 は「割り込みの期限判定の資源の消費」でした。
VulDB の記載は5件とも、攻撃は遠隔から可能で、悪用の方法は公開済みとしています。元の Issue には、報告者が検証に使ったとするコードが載っています。VulDB は5件すべてに元の Issue へのリンクを付けました。VulDB の記録では、勧告の公開日は10月31日で、VulDB の項目もその日のうちに作られています。
AG-UI が担う、エージェントと画面の間の通信
AG-UI は、リポジトリの説明では「エージェントと利用者のやり取りのプロトコル。エージェントをフロントエンドのアプリに持ち込む」ものです。エージェントのサーバーは、約16種類の決まったイベント(文字の生成、道具の呼び出し、状態の更新など)を送り、画面の側はそれを受け取って表示します。運ぶ方法は SSE(サーバーから届く連続した通知)や WebSocket などを選べます。
リポジトリは2025年5月に作られ、11月2日の時点でスターは約1万7,000です。説明書きでは、AG-UI は AIの画面部品を作る CopilotKit が LangChain と CrewAI と組んだことから生まれたとされ、利用規約は MIT です。連携先として Google の ADK、Microsoft Agent Framework、AWS の Strands Agents、Mastra、Pydantic AI、LlamaIndex などが並びます。MCP(AIに道具をつなぐ決まり)や A2A(エージェントどうしの決まり)を補うものと説明されています。
今回の5件は、すべて画面の側で使う TypeScript の部品 @ag-ui/client の中にあります。この部品は、エージェントのサーバーに実行の要求を送り、返ってくるイベントの流れを読み取る役目です。つまり5件とも、サーバーから届くものを、画面の側がどこまで信じて受け取るかに関わる欠陥です。サーバー側の部品や、Python など他の言語向けの部品は、この5件の CVE の対象に入っていません。
8月25日の報告から11月1日の CVE 公開までの経緯
5件の元になった Issue は、8月25日の協定世界時8時45分から49分までの4分間に、同じ報告者が続けて立てたものです。番号は 2520 から 2525 の6つで、2523 は 2522 と同じ内容の重複でした。その後、修正の PR が順に出され、2件はマージされ、3件は残りました。
| 日時(UTC/日本時間) | 出来事 |
|---|---|
| 8月14日 22時26分/8月15日 7時26分 | npm に @ag-ui/client 0.0.58 が公開される |
| 8月25日 8時45分〜49分/17時45分〜49分 | ez-lbz が Issue 2520〜2525 を公開で立てる |
| 8月27日/同日 | @ag-ui/client 0.0.59 が公開される |
| 8月30日 | 120233 の修正 PR 2575 が出される |
| 9月9日/9月9日〜10日 | 120235 の修正 PR 2627 がマージされ、Issue 2522 が閉じられる。120234 の修正 PR 2698 が出される |
| 9月17日/9月17日〜18日 | AG-UI 1.0 の PR 2774 がマージされ、@ag-ui/client 1.0.0 が公開される |
| 9月21日 | 開発元の関係者が Issue 2524 を修正済みとして閉じる |
| 10月13日 | PR 2698 に、マージ前の修正の依頼が付く |
| 10月16日 | @ag-ui/client 1.0.3 が公開される(11月2日時点の最新版) |
| 10月28日 | 120237 の修正 PR 3241 が出される |
| 10月30日 20時53分/10月31日 5時53分 | リポジトリの release/2026-10-30 が公開される |
| 10月31日 | VulDB が5件の項目を作る |
| 11月1日 15時15分〜17時30分/11月2日 0時15分〜2時30分 | 5件の CVE が公開される |
報告から CVE の公開までは約2か月です。その間に開発元は版番号を 0.0.x から 1.0 へ上げており、CVE が出た時点の最新版は 1.0.3でした。CVE の記載は、この版の移り変わりに触れていません。
5件の内訳と深刻度
5件の内訳は、情報漏えいが1件、入力の検証の不備が1件、資源の消費が3件です。深刻度は CVSS(脆弱性の深刻度を0から10で表す共通の尺度)で示され、VulDB は 3.1 版と 4.0 版の両方の値を付けました。3.1 版では最も高いのが 120236 の 6.3、4.0 版では最も高いのが 120233 の 6.9 です。
| CVE | 部品 | 欠陥の種類 | CVSS 3.1/4.0 | 修正の状況 |
|---|---|---|---|---|
| 120233 | HttpAgent(実行の要求を送る部分) | 情報漏えい | 5.3/6.9 | PR 2575 が承認待ち |
| 120234 | HTTP の通信部分 | 資源の消費 | 4.3/5.3 | PR 2698 が承認待ち |
| 120235 | SSE の解析部分 | 資源の消費 | 4.3/5.3 | 9月9日にマージ済み |
| 120236 | Transport Decoder(受け取ったデータの復号) | 入力の検証の不備 | 6.3/5.3 | 9月17日の AG-UI 1.0 で対応 |
| 120237 | 割り込みの期限判定 | 資源の消費 | 4.3/5.3 | PR 3241 が承認待ち |
5件のうち 120233 だけは、攻撃する側に権限が要らないという評価です。残る4件は、低い権限が要るという評価になっています。いずれも、どの程度の被害かを表す値は「低」で、情報漏えいの 120233 は機密性だけ、資源の消費の3件は可用性(動き続けられること)だけに影響するという評価です。120236 は、機密性と完全性と可用性のすべてに低い影響があるとされました。
CVE-2026-120233:認証用の情報が別の送り先に渡りうる転送
最も重く評価されたのは、実行の要求をエージェントのサーバーに送る HttpAgent の欠陥です。Issue 2520 によると、HttpAgent は要求を送るときに、サーバーが返す転送の指示(リダイレクト)に従うかどうかを決めていませんでした。そのため、通信の仕組みの標準の動きで転送に従い、サーバーが選んだ別の送り先に要求を送り直します。
報告者によると、送り直された要求には、会話の識別番号などを含む実行要求の中身と、開発者が付けた独自の認証用の見出し(取引先の識別や API の鍵など)が含まれていました。一般的な認証の見出しは、別の送り先へは通信の仕組みの決まりで外されていたとも書かれています。ブラウザーでは、決まりにより会話の履歴を含む要求の本体全体が送り直される場合があると、報告者は説明しました。
修正の PR 2575 は、転送に従わずにエラーにする変更です。開発元の関係者 NathanTarbert 氏は9月18日に、変更は「正しく見える」とコメントしました。同氏は、@ag-ui/client の外にも、Google の ADK 向けの連携部品と watsonx 向けの連携部品に、同じように転送に従う箇所が2つ残っていると指摘し、Issue 2520 はその2か所のために開けておくよう求めました。
CVE-2026-120236:復号の経路によって検証が抜けていた
3.1 版の CVSS で最も高い 6.3 が付いたのは、受け取ったデータを復号する部分の欠陥です。Issue 2524 によると、@ag-ui/client はサーバーの応答の形式を見て、SSE と protobuf(データを小さく詰める形式)のどちらで読むかを決めます。SSE の経路ではイベントごとに決まった形(スキーマ)に合うかを確かめていましたが、protobuf の経路では確かめずにそのまま渡していました。
報告者は、決まった形に合わないデータが protobuf の経路でだけ通り、画面の側の状態に入りうると書きました。その先のプログラムが、形が正しいことを当てにして動いていれば、動きの誤りにつながるという説明です。報告者は、影響は動き続けられることだけにとどまらないとも書いています。
この Issue は9月21日に閉じられました。NathanTarbert 氏は、検証は9月17日にマージされた AG-UI 1.0 で、SSE と protobuf の両方に同じように掛かる独立した段階に移ったと説明しました。protobuf の経路だけを厳しくすると、形式の選び方で実行が終わるかどうかが変わってしまうため、という理由も添えています。CVE も PR 2774 とその変更を修正として参照しました。
資源の消費3件:上限の無い読み込みと、失効しない割り込み
残る3件は、いずれも画面の側の記憶領域(メモリ)や処理が尽きることにつながる欠陥です。120234 は、サーバーがエラーの応答を返したときに、その本文を大きさの上限なく丸ごと読み込み、エラーの文面と付属の情報の2か所に持つ作りでした。正常な応答は少しずつ読む作りで、エラーのときだけ上限が無かったと Issue 2521 は書いています。
120235 は、SSE と protobuf の解析で、区切りが来るまでデータを溜めておく領域に上限が無かったものです。区切りが来ない応答が続くと、溜める領域が大きくなり続けます。報告者は、30メガバイトの応答で記憶領域の使用が数百メガバイトまで増えたと測定の結果を載せました。
120237 は、エージェントが人の確認を待つために出す割り込みの扱いです。Issue 2525 によると、期限の指定が無い割り込みは失効しないものとして扱われ、1回の実行終了の通知で、そのスレッドのそれ以降の実行が止まったままになることがありました。自動で元に戻る仕組みは無かったと報告されています。
修正済みの2件:9月9日のマージと AG-UI 1.0
120235 の修正 PR 2627 は9月4日に出され、9月9日にマージされました。変更は、SSE と protobuf の溜める領域に10メガバイトの上限を設け、超えたら通信を打ち切るものです。上限の値は、AG-UI の C++ 向けの部品に合わせたと PR に書かれています。10メガバイトを超える正当なイベントは失敗するようになる、という引き換えも PR は明記しました。
この PR では、開発元の関係者が9月8日と9日の2回、マージの前に直すべき点を挙げ、作者が同じ日に対応しています。指摘の中身は、打ち切った後も読み込みが続いていたことと、受け取りの区切り方によって正当なイベントが失敗しうることでした。CVE はこの修正のコミットと release/2026-10-30 を参照し、更新を勧めています。
120236 は、前の節のとおり AG-UI 1.0 の中で扱われました。PR 2774 は9月16日に出され、17日にマージされています。この PR は、仕様の文書と1つの決まった形の定義を置き、TypeScript・Python・.NET の部品をそこから作る大きな改修でした。PR の説明は、画面の側は決まりから外れたデータを「黙って直すのではなく、決まりを守らせる」と書いています。
修正PRが承認待ちの3件
120233 の PR 2575 は8月30日に出され、2か月あまり承認待ちです。正式なレビューの記録は無く、9月18日の NathanTarbert 氏のコメントでは、任意の改善として、転送を断ったことが分かるエラーにすることなどが挙がりました。11月2日の朝の時点で、マージはされていません。
120234 の PR 2698 は9月9日に出されました。エラーの本文の読み込みを64キロバイトまでに抑える変更です。NathanTarbert 氏は9月11日に「持ちこたえる」と評価したうえで、10月13日に3つの点の直しを求め、それが済めばマージできる状態だと書きました。作者はその後、PR の画面で応じていません。
120237 の PR 3241 は10月28日に出された最も新しいものです。期限の無い割り込みに、受け取ってから7日の期限を付け、1つのスレッドで待たせておける割り込みを100件までに抑える変更です。作者は、7日と100件は判断で決めた値で、変えてよいと書いています。レビューもコメントもまだありません。マージされていない以上、3つの PR の変更は公開された版に入っていません。
影響を受ける範囲:@ag-ui/client と週約200万回の取得
5件の対象は、npm で配られている @ag-ui/client です。npm の記録では、この部品の直近1週間(10月23日から29日)の取得数は約202万回でした。取得数には自動の組み立てによるものも含まれ、使っている会社やアプリの数を表すものではありません。
影響を受けるのは、この部品を使って、画面の側からエージェントのサーバーへ HTTP でつないでいるアプリです。CopilotKit のように AG-UI の上に作られた画面部品が、内部でこの部品を使っている場合もあります。どの製品がどの版を組み込んでいるかは、5件の CVE と Issue には書かれていません。
修正の状況は、件ごとに違います。修正済みの2件は、マージの日付から見て、9月17日公開の 1.0.0 以降の版に入っている可能性がありますが、開発元は、どの版から直ったかを示していません。承認待ちの3件は、最新の 1.0.3 でも直っていないことになります。
報告が想定する攻撃者は、つなぐ先のサーバー
5件の Issue は、いずれも悪意のある、または乗っ取られたエージェントのサーバーが、つないできた画面の側を狙う場合として書かれています。外部の誰かが利用者の画面に直接入り込む話ではありません。サーバーの応答の中身を、画面の側の部品が十分に疑わずに扱っていた、という種類の欠陥です。
そのため、影響の大きさは、自社のアプリがどのサーバーにつないでいるかで変わります。自社で動かしているエージェントのサーバーにだけつなぐ構成なら、サーバー自体が乗っ取られない限り、この種の欠陥が使われる場面は限られます。外部の事業者のエージェントや、利用者が指定した送り先につなぐ構成では、つなぐ先を選べない分だけ影響の範囲が広がります。
CVSS の評価でも、120233 以外の4件には低い権限が要るとされ、被害の値はすべて「低」です。一方で、120233 で渡りうるのは開発者が付けた独自の認証用の見出しで、その中身によっては他のサービスの鍵が外に出ることになります。漏れうる情報の重さは、何を見出しに入れているかで変わります。
CVE の「0.0.58 まで」とリポジトリの版の食い違い
5件の CVE は、影響を受ける版を「ag-ui の 0.0.1 から 0.0.58 まで」と書いています。ただし、ag-ui というリポジトリには、TypeScript・Python・.NET などの多くの部品があり、それぞれ別の版番号を持ちます。CVE の記載だけでは、0.0.58 がどの部品の版なのかは分かりません。Issue の記載から、報告者が確かめたのは @ag-ui/client の 0.0.58 だと読み取れます。
@ag-ui/client の 0.0.58 は8月14日に公開され、報告の時点では最新に近い版でした。その後、0.0.59 が8月27日に、1.0.0 が9月17日に出ています。「0.0.58 まで」という書き方は、それより後の版は影響を受けないようにも読めますが、承認待ちの3件は、0.0.59 以降の版にも残っているはずのものです。CVE の記載は、報告の時点の版で止まっています。
修正済みの2件についても、CVE が参照する release/2026-10-30 には @ag-ui/client が含まれていません。このリリースで公開されたのは、.NET の AGUI.ClaudeManagedAgents 0.0.4、npm の mastra 向けや watsonx 向けの連携部品、PyPI の ADK 向けの部品などです。リリースの説明にも、セキュリティの修正という記載はありません。
公開の Issue で出された報告と、非公開の報告を求める方針
AG-UI のリポジトリには、CopilotKit のセキュリティの方針が置かれています。方針は、脆弱性を専用のメールで非公開で報告するよう求め、詳細を公の場で話さないよう頼んでいます。受け付けの返事は48時間以内、調べるのは5営業日以内、確認した脆弱性の修正は30日以内を目標にすると書かれています。
今回の5件は、この方針とは違い、公開の Issue として報告されました。Issue には欠陥の説明に加えて、報告者が確かめに使ったとするコードと測定の結果も載っています。VulDB は5件すべてで「悪用の方法は公開済み」とし、5件すべてに元の Issue へのリンクを付けています。報告者がなぜ公開の Issue を選んだのかは、Issue に書かれていません。
方針が掲げる30日の目標に対し、承認待ちの3件のうち 120233 と 120234 は報告から2か月以上がたっています。ただし、Issue 2521 では開発元の関係者が9月8日に修正の進め方を了承しており、開発元が報告を見ていなかったわけではありません。修正の作業の多くは、開発元の外の協力者が PR を出す形で進んでいます。
9月の CVE と10月21日の勧告:同じリポジトリの過去の事例
AG-UI のリポジトリに VulDB が CVE を付けたのは、今回が初めてではありません。9月15日と16日には、AWS の Strands Agents 向けの Python の連携部品の欠陥2件と、Rust 向けの部品の SSE の解析の欠陥に CVE が付きました。9月28日には、TypeScript の部品の中間処理の欠陥2件に CVE が付いています。報告者の名前は、今回とは別の VulDB の利用者でした。
これらの CVE でも、影響を受ける版の書き方はばらばらです。「1.0」「0.3.0」と書いたものもあれば、「2026-09-07 まで」と日付で書いたものもあります。Issue 2522 には、報告者が以前に Go・Rust・C++・Java・Kotlin の部品について出した報告の続きだという記載もあります。
開発元自身の勧告もあります。10月21日には、Google の ADK 向けの連携部品で、画面の側から送られた状態がサーバー全体で共有されるアプリや利用者の状態を書き換えうるという勧告が、深刻度「高」で GitHub の勧告として公開されました。今回の5件について、開発元の勧告は11月2日の朝の時点で出ていません。
現時点で分かっていないこと
11月2日の朝(日本時間)の時点で、CVE の記載、Issue と PR、リポジトリのいずれにも、次の点の答えはありません。
1つ目は、承認待ちの3件がいつ直るかです。PR 2698 は直しの依頼に作者が応じておらず、PR 3241 にはまだレビューが付いていません。2つ目は、開発元の見解です。開発元は CVE が付いたことについて、リポジトリで声明を出していません。
3つ目は、影響を受ける版の正確な範囲です。CVE は「0.0.58 まで」としていますが、修正済みの2件がどの版から直ったか、承認待ちの3件がどの版まで残るかは示されていません。4つ目は、@ag-ui/client を組み込んだ他の製品が、どの版を使っているかです。
5つ目は、実際に悪用されたかどうかです。VulDB は悪用の方法が公開済みとしていますが、それは攻撃が起きたことを意味しません。攻撃の報告は見当たりません。6つ目は、NathanTarbert 氏が指摘した ADK 向けと watsonx 向けの連携部品の転送の扱いが、その後どうなったかです。
VulDB が案内していることと、開発元の発信
VulDB は、修正済みの2件について部品を更新するよう勧めました。120235 には修正のコミットとリリースを、120236 には AG-UI 1.0 の PR とそのコミットを示しています。残る3件については、「修正の PR は承認待ち」と記載し、更新で直る版は示していません。
開発元から利用者への案内は、11月2日の朝の時点で確認できません。リポジトリの勧告の一覧に5件は載っておらず、リリースの説明にも触れられていません。修正の中身と進み具合は、5件の CVE が参照する Issue と PR に書かれています。
具体的にどの版を使うかは、開発元の今後の発表と、VulDB の記載の更新で変わる可能性があります。CVE の記載は、VulDB が10月31日に最後に更新した内容のままです。
- 2026年11月2日の朝(UTC)に、5件の CVE の記録(MITRE の API)、Issue 2520〜2525、PR 2575・2627・2698・2774・3241、release/2026-10-30、npm の @ag-ui/client の記録を確認して書いています。
- 承認待ちの3件の PR は、確認の後にマージされる可能性があります。VulDB の記載と影響を受ける版は、続報で変わることがあります。
まとめ
11月1日、AIエージェントと画面をつなぐ AG-UI の TypeScript の部品 @ag-ui/client に、VulDB が CVE を5件付けました。内訳は情報漏えい1件、入力の検証の不備1件、資源の消費3件で、CVSS 3.1 の値は 4.3 から 6.3 です。5件とも、つなぐ先のエージェントのサーバーが悪意を持つか乗っ取られている場合に、画面の側の部品がサーバーの応答を十分に疑わずに扱っていたというものでした。
5件は8月25日に公開の Issue で報告され、SSE の解析の欠陥は9月9日に、復号の検証の欠陥は9月17日の AG-UI 1.0 で直りました。認証用の情報が別の送り先に渡りうる 120233を含む3件は、修正の PR が出ているものの、11月2日の朝の時点でマージされていません。
CVE は影響を受ける版を「0.0.58 まで」と書いていますが、@ag-ui/client は既に 1.0.3 まで進んでおり、承認待ちの3件は新しい版にも残っています。修正の時期、影響を受ける版の正確な範囲、開発元の見解、悪用の有無は、まだ公表されていません。
※本記事にはAIが活用されています。編集者が確認・編集し、可能な限り正確で最新の情報を提供するよう努めておりますが、情報の完全性、正確性、最新性、有用性等について保証するものではありません。本記事の内容に基づいて行動を取る場合は、読者ご自身の責任で行っていただくようお願いいたします。
AIの導入・活用、何から始めるべきかお悩みですか?
デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。
