CVE-2026-105741: Langflow trusts a spoofed X-Forwarded-For header on its local-only MCP install endpoint, letting remote users write MCP config files, fixed in 1.10.3
Langflow 1.5.0 up to 1.10.3 decided whether a request to POST /api/v1/mcp/project/{project_id}/install came from localhost by reading the first X-Forwarded-For entry, which the client controls. An authenticated remote user could send X-Forwarded-For: 127.0.0.1 to pass the local-only check and write or overwrite an MCP client configuration file on the server. Upgrade to 1.10.3 or later.
What it is
The get_client_ip helper returned the leftmost X-Forwarded-For value unconditionally, with no check that the request actually came through a trusted proxy.
That helper gates install_mcp_config, which is meant to be local-only because it writes an MCP client configuration file on the server's filesystem.
The vulnerable code was introduced in v1.5.0; GitHub lists versions from 1.5.0 up to (not including) 1.10.3 as affected.
How to check
- Run pip show langflow and see whether the version is at least 1.5.0 and below 1.10.3.
- Check whether your Langflow server is reachable by users other than you.
How to fix
- Upgrade Langflow to 1.10.3 or later.
- If you run behind a reverse proxy, have it overwrite (not append to) X-Forwarded-For with the real client address.
pip show langflow | grep -i ^version
pip install -U 'langflow>=1.10.3' Sources
- criticalCVE-2026-93680 and CVE-2026-110186: IBM fixes a 9.8 authentication bypass and unauthenticated code execution in Langflow up to 1.12.8, upgrade to 1.13.0
- criticalCVE-2026-104339 and 30 more: IBM's Langflow 1.12.4 and 1.12.5 bulletins fix unauthenticated RCE, three 9.9 code execution bugs, SSRF and path traversal
- criticalCVE-2026-104334 and CVE-2026-93674: IBM's Langflow OSS bulletin lists two unauthenticated code execution flaws plus a batch of sandbox, file access and credential issues, fixed in 1.12.3
- criticalCVE-2026-10561: Langflow's Python Interpreter component ran code with no real sandbox