FlowiseAI の脆弱性 CVE-2025-58434:アカウント乗っ取りに No Patch/Yes PoC

FlowiseAI Password Reset Token Vulnerability Allows Account Takeover

2025/09/15 CyberSecurityNews — FlowiseAI が公表したのは、Flowise プラットフォームに存在する深刻な脆弱性 CVE-2025-58434 の情報である。この脆弱性の悪用に成功した攻撃者は、最小限の労力でアカウントを完全に乗っ取ることが可能になる。クラウド環境 (cloud.flowiseai.com) とセルフホスト環境に影響を及ぼすため、この AI エージェント構築プラットフォームを利用する組織にとって、広範なセキュリティ上の懸念が生じている。

主なポイント
  • FlowiseAI の重大な欠陥により、パスワード・リセット・トークンが漏洩する。
  • クラウド環境とセルフホスト環境の両方に影響する。
  • 公式パッチが提供されるまで、WAF による保護を導入し、API アクセスを制限する必要がある。
パスワード・リセット・トークンの脆弱性

この脆弱性は “/api/v1/account/forgot-password” エンドポイントの設計上の欠陥に起因するものである。具体的に言うと、適切な検証を行わずに、機密性の高い認証トークンを API レスポンスで返すという問題が生じている。

したがって、このエンドポイントへ向けて、攻撃者がパスワード・リセット・リクエストを送信すると、被害者の tempToken/tokenExpiry タイム・スタンプなどを含む完全なユーザー情報が返されるため、本来はメールで行われるべき検証プロセスが、事実上バイパスされ、認証情報の変更が可能となる。

このエクスプロイト・プロセスに必要なものは、攻撃対象のメール・アドレスのみである。したがって、それを知っている攻撃者は、curl コマンドを使用して、脆弱なエンドポイントに対して単純な POST リクエストを実行できる。

例:
curl -i -X POST https:///api/v1/account/forgot-password -H “Content-Type: application/json” -d ‘{“user”:{“email”:”victim@example.com”}}’

このリクエストに対して、サーバは 201 Created ステータスで応答し、パスワード・リセットに必要な tempToken を含む完全なユーザー情報を公開する。

この tempToken を取得した攻撃者は、追加の認証を必要とすることなく “/api/v1/account/reset-password” エンドポイントを再利用できるようになる。したがって攻撃者は、被害者のメールアドレス/取得したトークン/任意のパスワードを用いた POST リクエストを送信すると、サーバは 200 OK レスポンスで処理し、アカウント乗っ取りプロセスが完了する。

この脆弱性は CVSS 3.1 のベース・スコア 9.8 (Critical) と評価されており、攻撃ベクター文字列は (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) である。それが示すのは、ネットワーク経由で認証不要の悪用が可能であり、攻撃の複雑度は低く、機密性/整合性/可用性に重大な影響を与えることである。クラウド環境とセルフホスト環境に対して、広範な自動化攻撃が行われる可能性があることを、この分類は反映している。

この脆弱性はセキュリティ研究者 Zaddy6 と Arthurgervais により報告された。

Risk FactorsDetails
Affected ProductsFlowiseAI Flowise < 3.0.5, Flowise Cloud (cloud.flowiseai.com), Self-hosted/Local Deployments
ImpactComplete Account Takeover (ATO)
Exploit PrerequisitesTarget email address, Network access to /api/v1/account/forgot-password endpoint, No authentication required
CVSS 3.1 Score9.8 (Critical)
緩和策

FlowiseAI およびセルフホスト型の管理者にとって必要なことは、以下の対策を直ちに実施して、この深刻な脆弱性に対処することだ。

  • /api/v1/account/forgot-password エンドポイントから、HTTP レスポンスを介して、tempToken や機密性の高いアカウント情報を返さないようにする。その代わりに、メール・アドレスの登録の有無にかかわらず、{“message”:”If the email exists, you will receive reset instruction.”} のような汎用的なメッセージを返す。
  • パスワード・リセット・トークンの配信は、ユーザーの認証済みメール・アドレス経由に限定する。API はワンタイムの tempToken を生成し、サーバ側で安全に保管し、初回使用時または短期間の有効期限後に無効化する。
  • “/api/v1/account/reset-password” エンドポイントには検証を追加し、指定されたメール・アドレスに対して生成された最新のトークンと tempToken が一致すること、その tempToken が未使用であること、そして、要求元と同じ Client IP から発行されていることを確認する。
  • それぞれのパスワード・リセット要求を、関連 IP アドレスとタイム・スタンプと共にログに記録し、異常パターンの検出に活用する。
  • クラウド環境とセルフホスト環境のデプロイ・ブランチで、徹底的なコード・レビューを実施し、残存するデバッグ・エンドポイントが機密データを公開していないことを確認する。
  • パスワード・リセット・エンドポイントに厳格なレート制限を実装し、自動列挙やブルートフォース攻撃を阻止する。上記の修正を自動化し、明確なアップグレード手順を取り込むバージョン 3.0.5 のパッチ・リリースに対して計画を進める。
  • パッチが提供されるまでは、アプリケーションを WAF の背後に配置し、API エンドポイントへのアクセスを、既知のネットワークまたは認証済みチャネルに限定する。

これらの対策により、トークンの直接的な露出を排除し、堅牢な検証と監視が実施される。それによりユーザー組織は、認証情報の整合性を維持し、アカウント乗っ取りのリスクを軽減できる。