piflowに認証なしの任意コマンド実行、修正版は未公表
piflow 2.0.0 から 2.0.1 のチャット機能(DeepAgents)に、認証なしで外部から任意のコマンドを実行されてしまう弱点が見つかりました。チャット用の入口が公開されている環境では、LLM の API キーやデータベースの認証情報が盗まれるおそれがあります。修正版の有無は現時点で明らかになっていないため、まず利用有無と公開範囲を確認し、入口へのアクセスを制限してください。
急ぎ度: 至急
ログインなしでネットワーク越しにコマンドを実行でき、環境変数内の秘密情報まで読み取られるため、チャット機能に外部から届く環境では優先して対処すべき内容です。
関係があるか
piflow 2.0.0 から 2.0.1 を動かし、DeepAgents のチャット機能(POST /chat、POST /chat/stream)にネットワーク経由で到達できる組織が対象です。社内ネットワークだけで使っている場合も、同じネットワーク上の誰でも悪用できる点は変わりません。
| 製品 | 影響を受ける版 | 直った版 |
|---|---|---|
| piflow(DeepAgents chat agent) | 2.0.0 から 2.0.1 | 公表されていません。開発元リポジトリ(cas-bigdatalab/piflow)の最新情報を確認してください |
確かめ方
- 1自社や関連部門で piflow を導入・検証していないか、サーバーやコンテナの一覧から確認します。
- 2導入済みの場合は、使っている版が 2.0.0 から 2.0.1 の範囲か確認します。
- 3
POST /chatとPOST /chat/streamに、インターネットや他のネットワークから届くかを、ファイアウォール、リバースプロキシ、ロードバランサーの設定で確認します。 - 4アクセスログに、想定外の接続元から
/chatや/chat/streamへの POST がないかを確認します。
何が起きたか
piflow は、AI エージェントを使った処理の仕組みを備えたソフトウェアです。その 2.0.0 から 2.0.1 に含まれるチャット機能は、利用者が誰かを確認せずに外部からの依頼を受け付けます。さらにこの機能は、サーバー上でコマンドを実行する道具を、人の承認なしに呼び出せる作りでした。つまり、入口に届く人なら誰でも、サーバーに命令を出せる状態です。
もう少し詳しく言うと、チャット用の POST /chat と POST /chat/stream の 2 つの入口に認証がありません(CWE-306)。エージェントが exec_shell というツールを呼び出すと、Python の subprocess.run で任意のコマンドが実行されます。実行前の人による承認も、実行できるコマンドを絞る許可リストもありません。
その結果、サーバーの環境変数に置かれた LLM の API キーやデータベースの認証情報などが、外部に取り出されるおそれがあります。CVSS v3.1 の基本値は 9.8(Critical)です。公表日は 2026 年 10 月 20 日です。
攻撃の流れ
-
1
入口に到達
ネットワーク上の第三者が、piflow のチャット用の入口に接続できる状態です。
-
2
認証なしで依頼
ログインや鍵の確認がないため、誰でもエージェントに依頼を送れます。
-
3
コマンド実行
エージェントが `exec_shell` を呼び出し、承認も許可リストもなく任意のコマンドが実行されます。
-
4
秘密情報の流出
環境変数にある LLM の API キーやデータベースの認証情報が外部に渡るおそれがあります。
どう悪用されるか
悪用に必要なのは、チャット用の入口にネットワークで到達できることだけです。認証は不要で、攻撃の複雑さは低く、利用者の操作も要りません。CVSS のベクターは AV:N/AC:L/PR:N/UI:N で、ネットワークから、特別な条件や権限なしに悪用できることを示しています。
悪用された場合、piflow が動くサーバーの権限で任意のコマンドが実行されます。環境変数にある LLM の API キーやデータベースの認証情報が読み取られるほか、データの閲覧・改ざん、サービス停止にもつながりかねません。盗まれた API キーが外部で使われれば、利用料金の請求や、データベースを足がかりにした他システムへの被害拡大も考えられます。
実際の攻撃での悪用が確認されたという公表は、現時点で見当たりません。ただし、仕組みが単純で公開情報も出ているため、公開された環境では早めに手を打つのが安全です。
今すぐやること
-
1
piflow の利用有無と版を洗い出す
開発・検証用を含め、piflow を動かしているサーバーやコンテナを確認し、版が 2.0.0 から 2.0.1 に当たるか調べます。個人や部門が試験的に立てたものも見落とさないようにします。
-
2
チャット用の入口への到達範囲を確認して絞る
POST /chatとPOST /chat/streamに外部から届くなら、ファイアウォールやリバースプロキシで遮断するか、信頼できる接続元だけに限定します。サーバーが待ち受けているポートは、次のコマンドで確認できます。ss -tlnp -
3
開発元の告知で修正版を確認する
修正版や公式の対処方法は、現時点で公表されていません。cas-bigdatalab/piflow のリポジトリと、VulnCheck などのアドバイザリを定期的に確認し、修正版が出たら適用します。
-
4
アクセスログを調べる
公開されていた期間の
/chatと/chat/streamへの POST を確認し、見覚えのない接続元や不審な時間帯のアクセスがないか調べます。ログの場所は環境によって異なります。grep -E "POST /chat" /var/log/nginx/access.log -
5
不審な形跡があれば秘密情報を入れ替える
外部から届く状態だった場合や、不審なアクセスがあった場合は、piflow の環境に置いた LLM の API キーとデータベースの認証情報を無効化し、新しいものに入れ替えます。あわせて、それらを使った不審な利用がないか、各サービスの利用履歴で確認します。
すぐ更新できないとき
修正版が出るまでは、公式の回避策が公表されていないため、次のような一般的な緩和策で入口を閉じます。
- /chat と /chat/stream を、リバースプロキシやファイアウォールで遮断するか、許可した接続元だけに限定する。
- 手元で使うだけなら、localhost のみで待ち受けるようにする。
- 利用予定がなければ、piflow のサービスを停止する。
- 実行ユーザーの権限を最小限にし、必要のない秘密情報を環境変数に置かない。
これらは被害の可能性を下げる措置であり、弱点そのものを取り除くものではありません。
背景
piflow のような AI エージェントの基盤は、LLM の API キーやデータベースの認証情報を環境変数として持ち、社内のデータや業務システムとつなぐことが多い製品です。そのため、エージェントが操作できる範囲がそのまま、攻撃された場合の被害範囲になります。
シェルのコマンドを実行する道具をエージェントに持たせること自体は珍しくありません。ただし、安全に使うには、利用者の認証、人による承認、実行できるコマンドの制限といった歯止めが必要です。認証がない入口から任意のコマンドが実行できてしまう弱点は、以前から Web アプリケーションの典型的な問題として繰り返し見つかってきました。今回は、それが AI エージェントの機能で起きたものです。
よくある質問
Q.社内ネットワークだけで使っていれば安全ですか。
Q.すでに攻撃されているのですか。
Q.秘密情報の入れ替えはどこまで必要ですか。
まだ分かっていないこと
- 修正版の版番号や公開時期、および公式の対処方法は、現時点で公表されていません。
- 実際の攻撃で悪用された事例や、悪用される見込みを示す指標は、現時点で明らかになっていません。
- 2.0.0 より前の版や 2.0.1 より後の版が影響を受けるかは、公表されていません。
この記事は、取得元の公開情報をもとに生成 AI で作成しています。誤りを含むことがあります。対応を決める前に、下の原文と参照先を確認してください。
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
piflow 2.0.0 through 2.0.1 contains a remote code execution vulnerability in its DeepAgents chat agent, whose POST /chat and POST /chat/stream endpoints lack authentication. Attackers can instruct the agent to call the exec_shell tool, which runs arbitrary commands via subprocess.run without human approval or an allow-list, exposing environment secrets such as LLM API keys and database credentials.
出典: NIST National Vulnerability Database NVD GitHub Advisory
参照URL
- web github.com
- web github.com
- web lasso.security
- web vulncheck.com
- web nvd.nist.gov
- web github.com