本文へ移動
English version →
重大 9.8 急ぎ度: 至急

Langchain-Chatchatに認証なしのコマンド実行、修正版は未確認

Langchain-Chatchat 0.3.1.3 以前では、認証なしで呼び出せる POST /tools/call から、サーバー上で任意のOSコマンドを実行されるおそれがあります。ネットワークから到達できるサーバーが対象で、同梱のDockerイメージではroot権限で実行されます。まず自社内の稼働状況を洗い出し、外部や広い社内ネットワークから届かないよう制限してください。修正版の有無は現時点で確認できていないため、開発元の告知を確認してください。

CVE-2026-75128 公開 生成 AI で作成
画像は生成 AI で作成したイメージです

急ぎ度: 至急

認証なしで1回のリクエストからroot権限のコマンド実行に至る可能性があり、修正版の情報も確認できていないため、到達制限を先に行う必要があります。

関係があるか

Langchain-Chatchat を自社サーバーやコンテナで動かし、APIにネットワーク経由で到達できる組織が対象です。特にインターネットや広い社内ネットワークへ公開している環境は優先度が高くなります。

製品影響を受ける版直った版
Langchain-Chatchat 0.3.1.3 以前 公表されていません。開発元のGitHubリポジトリの告知で確認してください
Langchain-Chatchat 同梱のDockerイメージ 0.3.1.3 以前に基づくもの(サーバーがroot権限で動作) 公表されていません

確かめ方

  1. 1社内で Langchain-Chatchat を試用・運用している部門や担当者がいないか、まず聞き取ります。検証用や個人利用のサーバーも対象に含めます。
  2. 2稼働中のコンテナやプロセスを確認し、Langchain-Chatchat のイメージや環境が動いていないか調べます。
  3. 3導入されている版が 0.3.1.3 以前かを確認します。
  4. 4APIのポートが、インターネットや利用者以外のネットワークから到達可能になっていないか、ファイアウォールやリバースプロキシの設定で確かめます。

何が起きたか

社内の文書を使って質問に答えるAIチャットを自前で動かせるオープンソースの Langchain-Chatchat に、認証のない入口が見つかりました。この入口に特定の形式で要求を送るだけで、サーバーに命令を実行させられます。ログインも利用者の操作も必要ありません。

具体的には、0.3.1.3 以前のAPIサーバーが POST /tools/call というエンドポイントを持っています。これは登録済みのツールを名前で呼び出す機能ですが、呼び出し元の認証を確認していません。常に登録されている shell ツールもそのまま呼び出せるため、遠隔の第三者がサーバーを実行ユーザーの権限で操作できます。分類は CWE-306(重要な機能に対する認証の欠如)で、同梱のDockerイメージではroot権限です。

CVSS v3 のスコアは 9.8(クリティカル)です。実際の攻撃で悪用された事例は、現時点で公表されていません。ただし、問題のコード位置は公開された情報に示されており、仕組みは単純です。公開されているサーバーは、早く対処すべき状態にあります。

攻撃の流れ

  1. 1

    到達できる

    攻撃者が Langchain-Chatchat のAPIサーバーにネットワーク経由で接続できる状態です。

  2. 2

    認証なしで要求

    `/tools/call` に、呼び出すツールの名前を指定した要求を送ります。認証は求められません。

  3. 3

    shellツール実行

    常に登録されている `shell` ツールが呼び出され、OSコマンドが実行されます。

  4. 4

    サーバーを掌握

    実行ユーザー(同梱イメージではroot)の権限で、情報の窃取、改ざん、他の機器への踏み台化が可能になります。

公開されている情報をもとにした流れの例です。

どう悪用されるか

悪用の前提は、APIサーバーにネットワークから到達できることだけです。認証は要らず、利用者の操作も不要で、攻撃の難易度は低いとされています(CVSS の AC:L、PR:N、UI:N)。要求は1回で足りるとされています。

成功した場合、サーバー上で任意のコマンドが実行されます。そのため、保存されている文書や会話内容の読み取り、設定ファイルに置かれたAPIキーなどの認証情報の窃取、データの改ざん、不正プログラムの設置、同じネットワーク内の他の機器への侵入などに発展しえます。同梱のDockerイメージはroot権限で動くため、コンテナ内での影響は最大になります。コンテナの設定次第では、ホスト側へ影響が及ぶ可能性もあります。

今すぐやること

  1. 1

    稼働中の Langchain-Chatchat を洗い出す

    部門の検証環境や個人のサーバーも含め、動いているインスタンスと導入されている版を一覧にします。Dockerで動かしている場合は、イメージ名で絞り込めます。

    docker ps --format '{{.Names}} {{.Image}}'
  2. 2

    ネットワークからの到達を制限する

    インターネットや利用者以外のネットワークから、APIのポートに届かないようにします。ファイアウォールやセキュリティグループで、必要な接続元だけに絞ってください。修正版が確認できるまでの暫定策として、最も効果があります。

  3. 3

    ログに不審な呼び出しがないか調べる

    リバースプロキシやアプリケーションのアクセスログで、/tools/call への POST を確認します。外部の接続元や心当たりのない記録があれば、侵害された可能性を前提に調査します。ログのパスは環境に合わせて読み替えてください。

    grep 'POST /tools/call' /var/log/nginx/access.log
  4. 4

    開発元の告知を確認し、修正版があれば適用する

    修正版の有無や緩和策は、現時点で明らかになっていません。開発元のGitHubリポジトリの更新や告知を定期的に確認し、公開され次第、検証したうえで適用します。

  5. 5

    侵害の疑いがあれば認証情報を入れ替える

    到達可能な状態で運用していた場合は、サーバーに置いていたAPIキーやパスワードなどの認証情報を、安全な環境から再発行して入れ替えます。サーバーは再構築も含めて検討します。

すぐ更新できないとき

修正版を当てられない間は、APIのポートを必要な利用者のネットワークだけに限定してください。あわせて、リバースプロキシなどで /tools/call へのリクエストを遮断する方法があります。ただしこれらは公式の緩和策ではなく、他の機能への影響を事前に確認する必要があります。また、コンテナを root 以外のユーザーで動かすと、被害の範囲を狭められる場合があります。

背景

Langchain-Chatchat は、LangChain をもとにした、社内文書などを使って質問に答えるAIチャットのオープンソースです。自社環境に置けるため、社外にデータを出したくない組織の検証や運用で使われます。社内の文書を扱うので、サーバーが乗っ取られると情報漏えいにつながります。

AIエージェントの機能には、モデルがツールを呼び出してOSコマンドやファイル操作を行うものがあります。こうした機能を認証なしで外部に公開すると、サーバーを直接操作される結果になりやすい点は、広く指摘されてきました。今回の問題も、重要な機能に認証がない典型的なパターンです。

よくある質問

Q.社内ネットワークだけで使っていますが、対応は必要ですか。
A.必要です。攻撃に認証は要らないため、そのネットワークに接続できる機器や利用者であれば誰でも到達できます。私物端末や侵入済みの機器から悪用される可能性があるため、接続元の制限と版の確認を行ってください。
Q.すでに悪用されていますか。
A.実際の攻撃での悪用は、現時点で公表されていません。ただし、認証なしで容易に実行できる弱点であり、悪用が始まる前に制限をかけておくことが望ましい状況です。
Q.更新すれば直りますか。
A.修正版の有無や版番号は、現時点で公表されていません。開発元のGitHubの告知を確認してください。それまでは、ネットワークの制限を先に行ってください。

まだ分かっていないこと

  • 修正版の版番号と公開時期は、公表されていません。
  • 実際の攻撃での悪用や、被害の報告があるかどうかは、現時点で明らかになっていません。
  • shell ツールを設定で無効にできるかどうかは、公表されていません。

この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。

原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。

Langchain-Chatchat through 0.3.1.3 exposes a POST /tools/call API endpoint that invokes any registered tool by name without authentication, leaving the always-registered shell tool callable. Remote attackers can send a single request naming the shell tool to execute arbitrary OS commands as the server user (root in the shipped Docker image).

出典: NIST National Vulnerability Database NVD GitHub Advisory

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく