CVE-2026-7646: Langflow: path traversal via MCP leaks JWT secret
MEDIUMIBM Langflow's MCP `resources/read` endpoint fails to sanitize a URL-encoded filename parameter, letting a low-privileged authenticated user traverse the filesystem and pull arbitrary server files — including the JWT signing secret, the SQLite database, other tenants' uploaded documents, and process environment variables. This isn't a theoretical bug: a leaked JWT signing secret means an attacker can forge valid session tokens and impersonate any user, and the env var exposure can hand over LLM provider API keys or cloud credentials configured on the same host. There's no public exploit or Nuclei template yet and CISA scores it TRACK (not KEV), with EPSS at 0.3% (top 77th percentile) suggesting exploitation isn't imminent, but the low attack complexity and single CVSS gap (privilege required is low, not none) mean any multi-tenant or internet-facing Langflow instance is trivially exposed to a registered user turning into a full-tenant compromise. Patch to a version beyond 1.10.3 immediately, rotate the JWT signing secret and any credentials stored in `.env` on affected hosts, and audit MCP `resources/read` request logs for URL-encoded traversal sequences (`%2e%2e%2f`, `..%2f`) as a compromise indicator.
What is the risk?
CVSS 6.5 (medium) understates the practical severity for multi-tenant or shared Langflow deployments: confidentiality impact is high with no integrity or availability loss, attack complexity is low, and the only barrier is a low-privilege authenticated account — a bar most self-service or trial deployments clear by design. The real risk driver is what's readable: the JWT signing secret converts a file-read bug into a full authentication bypass, and the SQLite DB plus env vars can contain stored LLM API keys, database credentials, or third-party integration secrets. EPSS (0.3%, 77th percentile) and absence from CISA KEV indicate no evidence of active mass exploitation yet, and no public PoC or scanner template exists, giving defenders a window to patch before broad automation appears.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Langflow | pip | — | No patch |
Do you use Langflow? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade Langflow beyond version 1.10.3 as soon as IBM publishes the fixed release. Until patched, restrict network/API access to the Langflow instance to trusted networks only and avoid exposing MCP endpoints to untrusted or self-service users. Immediately rotate the JWT signing secret and any credentials present in the deployment's
.env/environment variables, since a prior exposure cannot be ruled out retroactively. Review the SQLite database and file storage for signs of unauthorized access. Add detection for URL-encoded path traversal sequences (%2e%2e,..%2f,..%5c) in requests to the MCPresources/readendpoint, and enforce least-privilege multi-tenancy isolation (separate instances per tenant) where feasible.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-7646?
IBM Langflow's MCP `resources/read` endpoint fails to sanitize a URL-encoded filename parameter, letting a low-privileged authenticated user traverse the filesystem and pull arbitrary server files — including the JWT signing secret, the SQLite database, other tenants' uploaded documents, and process environment variables. This isn't a theoretical bug: a leaked JWT signing secret means an attacker can forge valid session tokens and impersonate any user, and the env var exposure can hand over LLM provider API keys or cloud credentials configured on the same host. There's no public exploit or Nuclei template yet and CISA scores it TRACK (not KEV), with EPSS at 0.3% (top 77th percentile) suggesting exploitation isn't imminent, but the low attack complexity and single CVSS gap (privilege required is low, not none) mean any multi-tenant or internet-facing Langflow instance is trivially exposed to a registered user turning into a full-tenant compromise. Patch to a version beyond 1.10.3 immediately, rotate the JWT signing secret and any credentials stored in `.env` on affected hosts, and audit MCP `resources/read` request logs for URL-encoded traversal sequences (`%2e%2e%2f`, `..%2f`) as a compromise indicator.
Is CVE-2026-7646 actively exploited?
No confirmed active exploitation of CVE-2026-7646 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-7646?
Upgrade Langflow beyond version 1.10.3 as soon as IBM publishes the fixed release. Until patched, restrict network/API access to the Langflow instance to trusted networks only and avoid exposing MCP endpoints to untrusted or self-service users. Immediately rotate the JWT signing secret and any credentials present in the deployment's `.env`/environment variables, since a prior exposure cannot be ruled out retroactively. Review the SQLite database and file storage for signs of unauthorized access. Add detection for URL-encoded path traversal sequences (`%2e%2e`, `..%2f`, `..%5c`) in requests to the MCP `resources/read` endpoint, and enforce least-privilege multi-tenancy isolation (separate instances per tenant) where feasible.
What systems are affected by CVE-2026-7646?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, LLM orchestration pipelines, multi-tenant AI platforms.
What is the CVSS score for CVE-2026-7646?
CVE-2026-7646 has a CVSS v3.1 base score of 6.5 (MEDIUM). The EPSS exploitation probability is 0.30%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0037 Data from Local System AML.T0049 Exploit Public-Facing Application AML.T0055 Unsecured Credentials Compliance Controls Affected
What are the technical details?
Original Advisory
IBM Langflow OSS 1.0.0 through 1.10.3 allows users to read arbitrary files from the server filesystem, including other users' uploaded documents, the JWT signing secret, the SQLite database, and process environment variables, by sending a crafted MCP `resources/read` request with a URL-encoded path traversal sequence in the filename.
Exploitation Scenario
An attacker who holds or obtains a low-privilege Langflow account — self-registration, a shared demo instance, or a phished internal credential — sends a crafted MCP `resources/read` request with a URL-encoded `../../` sequence embedded in the filename parameter. The server resolves the path outside the intended upload directory and returns the contents of `.env` or the application's JWT signing secret file. Using the recovered JWT secret, the attacker forges a token for a higher-privileged user (e.g., an admin), bypassing authentication entirely. From there they pull the SQLite database to harvest workflow definitions and any embedded credentials, and read other tenants' uploaded documents — turning a single file-read bug into full account takeover and cross-tenant data theft, with the leaked env vars potentially extending the compromise to connected LLM APIs or cloud infrastructure.
Weaknesses (CWE)
CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Primary
CWE-22 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') CWE-22 — Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal'): The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
- [Implementation] Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylis
- [Architecture and Design] For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N References
Timeline
Related Vulnerabilities
CVE-2026-10561 10.0 Langflow: auth bypass + unauthenticated RCE (CVSS 10)
Same package: langflow CVE-2026-10134 10.0 Langflow: unauthenticated RCE via tool_code injection
Same package: langflow CVE-2026-33309 9.9 langflow: Path Traversal enables file access
Same package: langflow CVE-2026-55255 9.9 Langflow: IDOR allows cross-user flow execution
Same package: langflow CVE-2026-7873 9.9 Langflow: authenticated RCE enables credential theft
Same package: langflow