トップ/記事一覧/Langroidに新たなサーバー乗っ取りの脆弱性 CVE-2026-54769(危険度10.0)、AIが書いたコードで無認証RCE、0.65.2へ更新を
langroid-cve-2026-25879-sqlchatagent-prompt-injection-rce-cover-ja-update

Langroidに新たなサーバー乗っ取りの脆弱性 CVE-2026-54769(危険度10.0)、AIが書いたコードで無認証RCE、0.65.2へ更新を

LangroidのSQLChatAgentが、AI生成のSQLを無検査で実行する欠陥CVE-2026-25879(CVSS9.8)。プロンプト注入からDBサーバーのRCEに至ります。v0.63.0への更新と、権限を絞る対策を整理します。

ニュース2026年6月2日公開 7日前更新
目次
この記事のポイント

LangroidのSQLChatAgentが、AI生成のSQLを無検査で実行する欠陥CVE-2026-25879(CVSS9.8)。プロンプト注入からDBサーバーのRCEに至ります。v0.63.0への更新と、権限を絞る対策を整理します。

AIにデータや表を操作させるためのアプリ開発基盤「Langroid(ラングロイド)」に、AIが書いたコードがそのまま実行され、サーバーごと乗っ取られる新たな欠陥(CVE-2026-54769)が公表されました。危険度を示すCVSSは10点満点中10.0(最高値)。ログインなしで、AIへの問いかけに細工を混ぜるだけで成立し得ます。修正版0.65.2がすでに公開されています。

問題になったのは、表データを扱うTableChatAgentと、文書を検索するVectorStoreという部品です。これらはAIが書いたコードを「安全に動かすつもり」で実行していましたが、その安全装置に抜けがあり、細工した問いかけからサーバー上で任意の命令を実行されてしまいます。しかも今回は単発ではありません。同じLangroidでは、以前にAIが書いたSQLを悪用されるCVE-2026-25879(危険度9.8)も見つかっており、「AIの出力をそのまま実行する」設計の穴が繰り返し露呈している形です。本記事では、新しい10.0の欠陥を中心に、過去の穴と共通する対策までを整理します。

新たな脆弱性CVE-2026-54769の全容(最高スコア10.0)

まず今回の要点を一覧にします。最大の特徴は、攻撃の入口が「AIへの問いかけ(プロンプト)」である点と、成功すればデータの窃取にとどまらず、サーバー上で任意の命令まで無認証で実行できる点でございます。前回のSQLChatAgentの穴(CVE-2026-25879、9.8)が「AIの書いたSQL」を悪用したのに対し、今回は「AIの書いたPythonコード」が舞台です。

項目内容
整理番号CVE-2026-54769
対象部品TableChatAgent・
VectorStore
影響を受ける版v0.65.2 より前
欠陥の種類コード挿入/
サンドボックス脱出(CWE-94)
入口AIへの問いかけ
(プロンプト注入)
深刻度CVSS 10.0(緊急・最高値)
ログイン要否不要(誰でも)
修正版v0.65.2 以降

CVSS 10.0は、認証なし・ネットワーク経由・難易度低で、被害が及ぶ範囲が攻撃を受けた部品の外にまで広がる(スコープ変更あり)と評価された、文字どおり最上位の深刻度です。悪用に特別な権限は要りません。対象は、TableChatAgentVectorStoreを使い、その入力が信頼できない相手に触れる構成でございます。

誰がこの穴を狙い、何が起きるのか

この欠陥が危ういのは、攻撃の入口が高度なハッキングではなく「AIへの何気ない問いかけ」や「AIに読み込ませる資料」に化ける点です。狙うと想定されるのは、サーバーを乗っ取って身代金を迫るランサムウェア集団や、AIツールの管理画面をネット全体から自動で探し出す攻撃者です。Langroidを組み込んだAIアプリは、社内データや外部サービスの鍵につながっていることが多く、一度サーバーを握られれば被害はアプリ単体では終わりません。

攻撃の流れは単純です。攻撃者は表への質問やAIが取り込む文章の中に、コードとして解釈される細工を紛れ込ませ、AIにそれを「答えを出すための処理」として実行させます。その一瞬でサーバー上に攻撃者の命令が走り、データの持ち出し、別のプログラムの設置、社内システムへの横展開まで一直線につながります。認証は不要で、利用者側のクリックも要りません。

後始末を背負うのは、そのAI機能を組み込んだ開発元やサービス運営者です。顧客情報が漏れれば個人情報保護委員会への報告と本人通知の義務が生じ、取引先への説明や損害賠償、信用の失墜が残ります。AIに任せる範囲が広いほど、AIが触れるデータと権限が、そのまま事故の被害範囲になります。いまLangroidを更新し、AIに渡す権限を絞れるかどうかが分かれ目でございます。

技術的に見ると、なぜ「安全装置」が効かなかったのか

CVE-2026-54769: AIが書いたコードを動かす「隔離」の抜け穴

TableChatAgentは、「先月の売上上位は?」といった質問に対し、AIが表計算ライブラリ(pandas)のPythonコードを書いて実行し、答えを返す部品です。危険な副作用を防ぐため、LangroidはこのコードをPythonのeval()で動かす際に、使える変数の一覧(locals)を空にして隔離しようとしていました。ところが、もう一つの一覧であるglobalsから「組み込み関数(__builtins__)」を取り除き忘れていたのが致命傷でした。

Pythonは実行時、この組み込み関数を暗黙のうちに補ってしまいます。その結果、攻撃者はAIに__import__('os').system(...)のような一文を書かせるだけで、隔離をすり抜けてサーバー上で任意のOSコマンドを実行できます。TableChatAgentはAIの出力をそのまま実行するため、細工した問いかけを送るだけで無認証のRCE(遠隔からのコード実行)が成立します。米国立標準技術研究所(NIST)はこれをコード挿入(CWE-94)として整理しています。同じ抜けは文書検索のVectorStoreにもありました。報告はLangroidの保守者自身で、修正版0.65.2で組み込み関数を明示的に取り除く形に直されています。

Langroidは「出力を信じて実行」で繰り返しつまずいている

AIにコードや命令を書かせ、それを無検査で実行する設計は、今回に限らず事故が相次いでいます。当サイトでも、Webページを開くだけでAIエージェントが乗っ取られるLangflowのCVE-2026-7524や、悪意あるAIモデルでサーバーが乗っ取られるvLLMのCVE-2026-4944を取り上げてきました。Langroid自体も、今回のTableChatAgent/VectorStore(CVE-2026-54769)に先立ち、AIが書いたSQLを悪用されるSQLChatAgentのCVE-2026-25879や、表データ処理での別の指摘を受けており、同じ「AIの出力をそのまま実行する」設計が繰り返し穴になっています

共通するのは、「AIの出力は信頼できる」という前提で実行系につないでしまう危うさです。AIは入力された言葉に乗せられやすく、その出力をOSコマンドやデータベース、ファイル操作に直結させると、プロンプト注入がそのまま実コードの実行に化けます。対策の基本は、AIの出力を必ず人間が書いたプログラムで検査・制限すること、そしてAIに渡す権限を最小限に絞ることです。

✓ 確認済みの事実

  • CVE-2026-54769は、TableChatAgent/VectorStoreのeval()で組み込み関数を除去し忘れ、無認証RCEに至る(GitLab Advisory/CVSS 10.0)
  • 修正はv0.65.2。組み込み関数を明示的に取り除く形に改修された
  • 同じLangroidでは以前にSQLChatAgentのCVE-2026-25879(9.8)も見つかっている

? 現時点で未確認のこと

  • ?実際に悪用された事例 ― 本記事時点で悪用報告や公開された攻撃コードは確認できていない。米CISAの攻撃確認リスト(KEV)にも未登録
  • ?国内での導入規模 ― Langroidの利用状況を示す公的なデータは確認できていない

そもそもLangroidとは何か

Langroidは、AI(大規模言語モデル=LLM)を使ったアプリを作るためのオープンソースの開発基盤(フレームワーク)です。カーネギーメロン大学などの研究者が開発し、複数のAIエージェントを組み合わせて、調べ物や文書処理、データベースや表への問い合わせといった作業を自動でこなさせる用途で使われています。Pythonのパッケージとして配布されており、誰でも組み込めます。

今回のTableChatAgentは、CSVやデータフレームなどの表を渡すと、自然な言葉の質問をAIがpandasのコードに翻訳して実行し、答えを返す部品です。VectorStoreは、大量の文書から関連箇所を探し出す検索の土台です。どちらも「利用者はコードを書かなくても、AIが処理してくれる」便利さが売りですが、その裏でAIの書いたコードを実行するため、出力の扱いを誤ると乗っ取りの入口になります。

以前の穴:SQLChatAgentのCVE-2026-25879(AIが書いたSQLで乗っ取り)

今回の10.0に先立ち、LangroidではCVE-2026-25879(危険度9.8)も公表されていました。舞台はSQLChatAgentという、「先月の売上トップ10は?」のような質問をAIがSQL(データベースへの命令文)に翻訳して実行する部品です。公式の脆弱性情報によると、SQLChatAgentはLLMが生成したSQLを十分な制限なく実行しており、プロンプト注入でAIの入力を操ると、本来は読み取りだけのはずの問い合わせを、データの書き換えや危険な命令に変えられました。分類はSQLインジェクション(CWE-89)とコード挿入(CWE-94)です。

とくに深刻なのが、データベースの利用者に強い権限がある場合です。PostgreSQLのCOPY ... FROM PROGRAM、MySQLのFILE権限、SQL Serverのxp_cmdshellといった、データベースから外部プログラムやファイルを操作できる機能を悪用すると、データベースが動くサーバー上で任意コードを実行(RCE)できました。影響を受けるのはv0.63.0より前で、修正版のv0.63.0では、SQLChatAgentが既定で「SELECT(読み取り)のみを許可する」方式に変わり、危険な命令を構文解析の段階ではじくようになりました。従来の無制限な動作が必要な場合は、allow_dangerous_operations=True を明示する設計です。なお現在の最新修正版0.65.2は、この25879と今回の54769の両方を塞いだ状態です。

自社が影響を受けるかの早見表

Langroidを使っているか、AIにコードやSQLを書かせる部品(TableChatAgent・VectorStore・SQLChatAgent)を外部入力に触れさせているか、接続先の権限をどう設定しているかで、リスクの大きさが変わります。いずれに当てはまる場合も、上げ先は両方の穴を塞ぐ0.65.2以降です。

使い方リスク優先度いま取るべき行動
TableChatAgent/
VectorStoreを
外部入力に公開
サーバー乗っ取り
(無認証RCE)
最優先
(即時)
0.65.2へ更新
+実行環境を隔離
SQLChatAgentを
外部入力に公開
+強いDB権限
DB乗っ取り
RCEの恐れ
最優先
(即時)
0.65.2へ更新
+DB権限を
読み取りのみに
上記部品を
社内限定で利用
内部からの
悪用の恐れ

(早期)
0.65.2へ更新
+権限を見直し
Langroidは使うが
該当部品は未使用
直接影響は
小さい
通常定例更新で
0.65.2へ

最も危険なのは、これらの部品を一般利用者やインターネットからの入力に触れさせている構成です。当てはまる場合は最優先で対応してください。

開発・運用チームがいま取るべき対策

最優先は、Langroidを0.65.2以降へ更新することです。これで今回のCVE-2026-54769と、以前のCVE-2026-25879の両方が塞がれます。TableChatAgentVectorStoreでAIにコードを書かせる場合は、更新後も念のため、コードの実行をコンテナなどで隔離し、外部への通信やファイルアクセスを絞っておくと安心です。

あわせて、AIがつなぐデータベースやシステムの権限を必要最小限に絞ることが重要です。読み取り専用で足りるなら書き込みを与えない、COPY ... FROM PROGRAMxp_cmdshell のような外部プログラム実行・ファイル操作の権限は外す、といった最小権限の徹底が、万一AIに危険なコードを書かれても被害を狭める防波堤になります。AIの出力を実行系に直結させる設計そのものを、人間が書いた検査ロジックで挟む見直しも有効です。

AIフレームワークの脆弱性は、このところ立て続けに出ています。OSSのAI部品を業務に組み込むなら、依存パッケージの更新を追える仕組みを整えておくと安心です。国内で広く使われる製品の脆弱性をまとめて追いたい場合は、2026年上半期の重大な脆弱性まとめもあわせて確認してください。

よくある質問

Q. CVE-2026-54769とは、どんな脆弱性ですか?

A. LangroidのTableChatAgentVectorStoreが、AIの書いたPythonコードをeval()で実行する際、隔離のために変数一覧(locals)を空にしていたものの、もう一方のglobalsから組み込み関数を取り除き忘れていた欠陥です。攻撃者はAIに__import__('os').system(...)のような一文を書かせるだけで隔離をすり抜け、サーバー上で任意の命令を無認証で実行できます。危険度は最高値の10.0で、修正版0.65.2で解消しています。

Q. Langroidを使っていれば必ず危ないのですか?

A. 直接の対象は、AIにコードやSQLを書かせる部品(TableChatAgent・VectorStore・SQLChatAgent)を使い、その入力が信頼できない相手に触れる構成です。これらを使っていない、または完全に閉じた環境でのみ使っている場合、リスクは下がります。ただし修正版0.65.2への更新は推奨されます。

Q. かならずRCE(任意のコード実行)まで至るのですか?

A. 新しいCVE-2026-54769は、隔離をすり抜けてサーバー上で直接コードが動くため、条件が揃えばそのままRCEに至ります。以前のCVE-2026-25879は、データベース利用者に外部プログラム実行やファイル操作の強い権限がある場合にRCEへ至ります。いずれも、AIに渡す権限を絞り、実行環境を隔離することが被害を狭める鍵です。

Q. プロンプト注入とは何ですか?

A. AIに与える指示文(プロンプト)に、本来の意図と違う命令を紛れ込ませ、AIの動作を乗っ取る攻撃です。「これまでの指示を無視して〜」といった文を、入力欄やAIが読み込む外部文書に仕込みます。AIの出力をそのまま実行する仕組みでは、これがそのまま実害につながります。

まとめ

LangroidのCVE-2026-54769は、AIに書かせたPythonコードを「安全に動かすつもり」の隔離に抜けがあり、細工した問いかけからサーバーごと乗っ取られる欠陥です。CVSSは最高値の10.0で、修正版0.65.2で解消しました。しかもこれは、以前のSQLChatAgentのCVE-2026-25879(9.8)に続く同型の再発で、Langroidが「AIの出力をそのまま実行する」設計で繰り返しつまずいていることを示しています。

対応の軸ははっきりしています。まず0.65.2以降へ更新し、AIにコードやSQLを書かせる部品を信頼できない入力から遠ざけ、AIに渡す権限を最小限に絞り、実行環境を隔離する。AIに業務を任せるほど、AIが触れる権限の広さがそのまま事故の被害範囲になります。「AIの出力は信頼しない」を前提に、実行系の手前で人間の検査を挟む設計が、この種の事故を防ぐ基本でございます。新たな悪用の動きがあれば、あらためてお伝えします。

参照元

avatar-m-1

堀川 慎

Backend Engineer / AWS / Django / Go