
Proof of Concept for CVE-2026-9198 - IBM Langflow Unauthenticated RCE via Auto-Login Bypass
यह रिपॉजिटरी IBM Langflow OSS को प्रभावित करने वाले CVE-2026-9198 के लिए एक शैक्षिक प्रूफ ऑफ कॉन्सेप्ट प्रदान करता है।
The PoC (poc.py) दर्शाता है कि कैसे एक अप्रमाणित हमलावर निम्नलिखित को जोड़ सकता है:
GET/POST /api/v1/auto_login (जब ऑटो-लॉगिन सक्षम होता है तो एक सुपरयूज़र टोकन लौटाता है), औरPOST /api/v1/validate/code (हमलावर द्वारा नियंत्रित Python कोड निष्पादित करता है)दूरस्थ कोड निष्पादन प्राप्त करने के लिए।
यह कोड और प्रदान किए गए Docker स्टैक केवल स्थानीय सुरक्षा परीक्षण और शिक्षा के लिए हैं।
उन प्रणालियों के विरुद्ध न चलाएं जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति नहीं है।
.
├── poc.py
├── vulnerable/docker-compose.yaml
└── patched/docker-compose.yaml
poc.py: एक्सप्लॉइट PoC।vulnerable/docker-compose.yaml: langflowai/langflow:1.10.0 (असुरक्षित) का उपयोग करने वाला लैब स्टैक।patched/docker-compose.yaml: langflowai/langflow:1.10.1 (पैच किए गए व्यवहार लक्ष्य) का उपयोग करने वाला लैब स्टैक।दोनों कम्पोज़ फ़ाइलें जानबूझकर http://127.0.0.1:9999 पर poc.py के परीक्षण के लिए लैब के रूप में स्थापित की गई हैं।
pip install requests
असुरक्षित वातावरण प्रारंभ करें:
docker compose -f vulnerable/docker-compose.yaml up -d
PoC चलाएं:
python3 poc.py
अपेक्षित असुरक्षित परिणाम में एक लाल [!] लाइन और कमांड आउटपुट शामिल होता है, उदाहरण:
[!] /api/v1/auto_login is vulnerable: uid=... gid=...
पहले असुरक्षित स्टैक को रोकें (यदि चल रहा हो):
docker compose -f vulnerable/docker-compose.yaml down -v
पैच किया गया वातावरण प्रारंभ करें:
docker compose -f patched/docker-compose.yaml up -d
वही PoC चलाएं:
python3 poc.py
अपेक्षित पैच किया गया परिणाम एक हरे [-] लाइन है जो दर्शाता है कि शोषण श्रृंखला अब सफल नहीं होती।
poc.py में:
URL डिफ़ॉल्ट रूप से http://127.0.0.1:9999 हैCMD डिफ़ॉल्ट रूप से id हैयदि आपको किसी भिन्न स्थानीय लक्ष्य या कमांड का परीक्षण करने की आवश्यकता हो तो इन स्थिरांकों को समायोजित करें।