
CVE-2026-67620 - 不完全なクラウドメタデータ拒否リストを介したFlowise SSRF (Oracle OCI 192.0.0.192 + Alibaba 100.100.100.200 は DEFAULT_DENY_LIST をバイパス)
製品: FlowiseAI/Flowise — ビジュアルLLM / AIエージェントビルダー(約54k ★)
影響を受けるバージョン: ≤ 3.1.4 — 最新リリースである 3.1.4 でも依然として脆弱であることを確認済み(2026-08-06 に再検証)
脆弱性: 不完全な拒否リストによるサーバーサイドリクエストフォージェリ
CWE: CWE-918 (SSRF) · CWE-184 (不許可入力の不完全なリスト)
深刻度: 中 — CVSS 3.1 6.5 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N)
発見日: 2026-07-10 · VulnCheck (CVD) への報告日: 2026-07-15
研究者: Bobur Abdugafforov (Mahadsec)
ベンダーの状況 — パッチは発行されません。 Flowise プロジェクトは公式に 終了しており、セキュリティ脆弱性の報告を受け付けていません。本アドバイザリは、 Flowise を運用し続けているオペレーターが自ら問題を緩和できるように公開されています。
Flowise は、クラウドのインスタンスメタデータサービスへのリクエストをブロックする SSRF ガードを搭載しています。この
拒否リストは、AWS、GCP、Azure、DigitalOcean が使用する 169.254.0.0/16 リンクローカル範囲を
カバーしていますが、その範囲に含まれない2つのメタデータアドレスを省略しています:
| クラウド | メタデータIP | 拒否リストに含まれるか? |
|---|---|---|
| AWS / GCP / Azure / DigitalOcean | 169.254.169.254 | ✅ ブロック済み |
| Oracle Cloud (OCI) | 192.0.0.192 | ❌ ブロックされていない |
| Alibaba Cloud | 100.100.100.200 | ❌ ブロックされていない |
公式の flowiseai/flowise:3.1.4 Docker イメージ
(.../flowise-components/dist/src/httpSecurity.js)に同梱されている完全な DEFAULT_DENY_LIST は次のとおりです:
'0.0.0.0', '10.0.0.0/8', '127.0.0.0/8', '169.254.0.0/16', '169.254.169.253',
'169.254.169.254', '172.16.0.0/12', '192.168.0.0/16', '224.0.0.0/4', '240.0.0.0/4',
'255.255.255.255/32', '::1', 'fc00::/7', 'fd00:ec2::254', 'fe80::/10', 'ff00::/8',
'localhost', 'ip6-localhost'
18件のエントリ。192.0.0.192 も 100.100.100.200 も含まれておらず、どちらも
リスト内のどの CIDR にも該当しません — 192.168.0.0/16 は 192.0.0.192 をカバーしておらず、
100.64.0.0/10(CGNAT)のエントリはまったく存在しないことに注意してください。
このリストは 3.1.2 と 3.1.4 の間でバイト単位で同一です。これらのリリース間で
httpSecurity.ts に加えられた唯一の変更は isDeniedIP() 内の IPv4 マップド IPv6 の正規化であり、
これは2つのプレーンな IPv4 アドレスには影響しません。
省略されたどちらのアドレスも、従来のプライベートまたはリンクローカル CIDR には該当しません:
192.0.0.192 は IETF Protocol Assignments ブロック 192.0.0.0/24 内にあり、
グローバルにルーティング可能に見えますが、100.100.100.200 は CGNAT 範囲 100.64.0.0/10 に位置し、
これもまた拒否リストではカバーされていません。したがって、「メタデータ IP」と
リンクローカル範囲を列挙して構築されたガードは、その両方を見逃します。
認証済みユーザーは、Flowise サーバーにこれらのアドレスへの任意の GET リクエストを発行させることができます。OCI または Alibaba Cloud のデプロイでは、これによりインスタンスメタデータ サービスに到達し、インスタンスの識別情報や認証情報が提供されます。
packages/components/src/httpSecurity.ts — DEFAULT_DENY_LIST
(コンパイル済み: httpSecurity.js:31-50)
このリストには 169.254.169.254 と 169.254.0.0/16 範囲が含まれていますが、
192.0.0.192、100.100.100.200、または 100.64.0.0/10 CGNAT 範囲は含まれていません。
リクエストフロー: GET /api/v1/fetch-links → checkDenyList(url) → webCrawl 経由の
secureFetch()。secureFetch はリダイレクト先を正しく再検証するため、リダイレクトベースの
バイパスは処理されています — 欠陥はリストの内容にあり、つまり省略されたいずれかの IP への
リダイレクトは、直接リクエストと同様に検証を通過します。
fetch-links ルートには checkPermission ミドルウェアがありません。そのため、任意の認証済み
セッションがロールに関係なくこのルートに到達できます。
GET /api/v1/fetch-links?url=<target>&relativeLinksMethod=webCrawl&limit=1
ユーザー指定の URL を伴って secureFetch / secureAxiosRequest を経由してルーティングされるすべてのノードは、同じ拒否リストの影響を受けます。たとえば web-scraper ノードや HTTP-request ノードなどです。
到達可能性に関する注記: この問題はさらに、公開されたチャットフロー内に URL 取得ノードが存在する場合、公開エンドポイント POST /api/v1/prediction/:id を通じて未認証で到達可能です。
192.0.0.192:80 および 100.100.100.200:80 にバインドされたリスナーを用いて、稼働中のローカル Flowise 3.1.2 インスタンスに対して動的に確認済みです。
対照 — AWS/GCP/Azure のメタデータ IP は正しくブロックされる:
GET /api/v1/fetch-links?url=http://169.254.169.254/latest/meta-data/&relativeLinksMethod=webCrawl&limit=1
HTTP/1.1 500
isDeniedIP: Error: Access to this host is denied by policy.
バイパス 1 — Oracle Cloud メタデータ:
GET /api/v1/fetch-links?url=http://192.0.0.192/opc/v1/instance/&relativeLinksMethod=webCrawl&limit=1
HTTP/1.1 200
{"status":"OK","links":["http://192.0.0.192/opc/v1/instance"]}
バイパス 2 — Alibaba Cloud メタデータ:
GET /api/v1/fetch-links?url=http://100.100.100.200/&relativeLinksMethod=webCrawl&limit=1
HTTP/1.1 200
リスナー上で観測されたサーバーサイドリクエスト(フェッチがクライアントではなくFlowiseサーバーから発信されたことを証明する):
# OCI listener
192.0.0.192 - - [11/Jul/2026 04:34:35] "GET /opc/v1/instance/ HTTP/1.1" 404 -
192.0.0.192 - - [11/Jul/2026 04:34:54] "GET /opc/v1/instance HTTP/1.1" 404 -
# Alibaba listener
100.100.100.200 - - [11/Jul/2026 04:34:35] "GET / HTTP/1.1" 200 -
100.100.100.200 - - [11/Jul/2026 04:34:54] "GET / HTTP/1.1" 200 -
PoC スクリプトは poc.py として含まれています。
認証済みの Flowise ユーザーであれば誰でも — また、URL 取得ノードが公開チャットフロー内に存在する場合は、未認証の訪問者であっても — サーバーに Oracle Cloud および Alibaba Cloud のインスタンスメタデータサービスへの GET リクエストを発行させることができます。これは、製品が他のプロバイダーに対して明示的に防止しようとしているものです。
影響を受けるデプロイメントでは、これによりインスタンスの識別情報と、インスタンスロールの認証情報を提供するメタデータエンドポイントが露出し、そこから被害者のクラウドアカウントへのさらなるアクセスにつながります。より広範には、同じギャップにより 100.64.0.0/10 の CGNAT 範囲へのリクエストも可能となり、これは多くのプロバイダーネットワーク内でルーティング可能です。
深刻度は、悪用には Flowise インスタンスが OCI または Alibaba Cloud 上でホストされている必要があることを反映しています。欠陥自体 — 不完全な拒否リスト — はプロバイダーに依存しません。
ベンダーパッチは発行されません。プロジェクトは終了しています。運用担当者は以下を行うべきです:
192.0.0.0/24 および 100.64.0.0/10 を拒否する egress ルール — アプリケーションは修正できないためです。PUT で取得したトークンを要求するプロバイダー相当のもの)ことで、単純な SSRF の GET では認証情報を取得できなくなります。ローカルフォークにパッチを当てる場合は、packages/components/src/httpSecurity.ts の DEFAULT_DENY_LIST に以下を追加してください: 192.0.0.192、100.100.100.200、および範囲 192.0.0.0/24 と 100.64.0.0/10。
| 日付 | 出来事 |
|---|---|
| 2026-07-10 | 脆弱性を発見し、稼働中のローカルインスタンスで確認 |
| 2026-07-15 | 協調的開示のため VulnCheck に報告 |
| 2026-08 | VulnCheck はプロジェクトが終了しており報告を受け付けていないと助言。CVE-2026-67620 が割り当てられ、公開開示が承認された |
| — | 公開開示(本アドバイザリ) |
Bobur Abdugafforov — Mahadsec
本アドバイザリおよび PoC は、防御および教育目的で公開されています。所有している、またはテストを許可されているシステムのみをテストしてください。