CVE-2026-34046 json
Langflow: Authenticated Users Can Read, Modify, and Delete Any Flow via Missing Ownership Check
published 2026-03-27 7 mo ago modified 2026-11-03 5 d ago also EUVD-2026-16850 , GHSA-8c4j-f57c-35cf , PYSEC-2026-2567 , PYSEC-2026-2570
- cvss
- 8.8
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 41%
- public exploits
- 0
- none known
Summary
Langflow is a tool for building and deploying AI-powered agents and workflows. Prior to version 1.5.1, the `_read_flow` helper in `src/backend/base/langflow/api/v1/flows.py` branched on the `AUTO_LOGIN` setting to decide whether to filter by `user_id`. When `AUTO_LOGIN` was `False` (i.e., authentication was enabled), neither branch enforced an ownership check — the query returned any flow matching the given UUID regardless of who owned it. This allowed any authenticated user to read any other user's flow, including embedded plaintext API keys; modify the logic of another user's AI agents, and/or delete flows belonging to other users. The vulnerability was introduced by the conditional logic that was meant to accommodate public/example flows (those with `user_id = NULL`) under auto-login mode, but inadvertently left the authenticated path without an ownership filter. The fix in version 1.5.1 removes the `AUTO_LOGIN` conditional entirely and unconditionally scopes the query to the requesting user.
Patch / fix
- pypi langflow 1.5.1
- pypi langflow-base 0.5.1
- langflow langflow 1.5.1
- langflow-ai langflow 1.5.1
- langflow langflow-base 0.5.1
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 7 mo ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 41% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.7 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.7 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | langflow | <1.5.1 |
1.5.1 |
| pypi | langflow-base | <0.5.1 |
0.5.1 |
Affected products
- langflow-ai langflow
- langflow-ai langflow-base
Classification
References
-
github.com
/langflow-ai/langflow/pull/8956
web, issue-tracking, patch
-
github.com
/langflow-ai/langflow/security/advisories/GHSA-8c4j-f57c-35cf
web, patch, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-34046
advisory
-
github.com
/langflow-ai/langflow
package
-
pypi.org
/project/langflow
package
-
github.com
/advisories/GHSA-8c4j-f57c-35cf
advisory
-
pypi.org
/project/langflow-base
package
Sources
- CVE List CVE-2026-34046
- GitHub Advisory GHSA-8c4j-f57c-35cf
- NVD CVE-2026-34046
- OSV PYSEC-2026-2567
- OSV PYSEC-2026-2570
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.