
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 लिंक-लोकल रेंज को कवर करती है — लेकिन उन दो मेटाडेटा पतों को छोड़ देती है जो उस रेंज में नहीं हैं:
| क्लाउड | मेटाडेटा 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 सामान्यीकरण है, जो दो सादे IPv4 पतों को प्रभावित नहीं कर सकता।
छोड़े गए दोनों में से कोई भी पता पारंपरिक निजी या लिंक-लोकल CIDR के अंदर नहीं आता: 192.0.0.192 IETF Protocol Assignments ब्लॉक 192.0.0.0/24 के अंदर है और वैश्विक रूप से रूटेबल दिखता है, जबकि 100.100.100.200 CGNAT रेंज 100.64.0.0/10 में स्थित है, जिसे deny-list भी कवर नहीं करती है। इसलिए "मेटाडेटा 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
secureFetch / secureAxiosRequest के माध्यम से उपयोगकर्ता-प्रदत्त URL के साथ रूट होने वाला प्रत्येक नोड उसी deny-list से प्रभावित होता है — उदाहरण के लिए web-scraper और HTTP-request नोड्स।
पहुँच-क्षमता पर टिप्पणी: यह समस्या सार्वजनिक POST /api/v1/prediction/:id endpoint के माध्यम से अप्रमाणित रूप से भी पहुँच योग्य है, जब भी किसी सार्वजनिक किए गए chatflow में URL-fetching नोड मौजूद हो।
192.0.0.192:80 और 100.100.100.200:80 पर बाइंड किए गए listeners के साथ, एक लाइव स्थानीय Flowise 3.1.2 इंस्टेंस के विरुद्ध गतिशील रूप से पुष्टि की गई।
नियंत्रण — AWS/GCP/Azure metadata 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 को अस्वीकार करने वाले एग्रेस नियम — क्योंकि एप्लिकेशन को ठीक नहीं किया जा सकता।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।