{"id":"CVE-2026-34046","summary":"Langflow: Authenticated Users Can Read, Modify, and Delete Any Flow via Missing Ownership Check","details":"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.","aliases":["GHSA-8c4j-f57c-35cf"],"modified":"2026-04-10T05:43:00.255066Z","published":"2026-03-27T20:06:35.836Z","database_specific":{"cwe_ids":["CWE-639","CWE-862"],"cna_assigner":"GitHub_M","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34046.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34046.json"},{"type":"FIX","url":"https://github.com/langflow-ai/langflow/pull/8956"},{"type":"ADVISORY","url":"https://github.com/langflow-ai/langflow/security/advisories/GHSA-8c4j-f57c-35cf"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34046"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/langflow-ai/langflow","events":[{"introduced":"0"},{"fixed":"4a7564af4a8e326dc98c798d11c274d4ee65281d"},{"fixed":"3dd80396fb38a27e53e2ac11b6fb4f145268d9d5"}],"database_specific":{"versions":[{"introduced":"0"},{"fixed":"1.5.1"},{"fixed":"0.5.1"}]}}],"versions":["1.1.2","1.1.3","1.1.4","1.2.0","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.4.0","1.4.1","1.4.2","1.5.0.post1","v0.0.31","v0.0.69","v0.0.70","v0.0.71","v0.0.72","v0.0.73","v0.0.74","v0.0.75","v0.0.76","v0.0.77","v0.0.78","v0.0.79","v0.0.80","v0.0.81","v0.0.82","v0.0.83","v0.0.84","v0.0.85","v0.0.86","v0.0.87","v0.0.88","v0.0.89","v0.1.0","v0.1.2","v0.1.3","v0.1.4","v0.1.5","v0.1.6","v0.1.7","v0.2.0","v0.2.1","v0.2.10","v0.2.11","v0.2.12","v0.2.13","v0.2.2","v0.2.3","v0.2.4","v0.2.5","v0.2.6","v0.2.7","v0.2.8","v0.2.9","v0.3.0","v0.3.1","v0.3.2","v0.3.3","v0.3.4","v0.4.0","v0.4.1","v0.4.10","v0.4.11","v0.4.12","v0.4.14","v0.4.15","v0.4.16","v0.4.17","v0.4.18","v0.4.19","v0.4.2","v0.4.20","v0.4.21","v0.4.3","v0.4.4","v0.4.5","v0.4.6","v0.4.7","v0.4.8","v0.4.9","v0.5.0","v0.5.0a0","v0.5.0a1","v0.5.0a2","v0.5.0a3","v0.5.0a4","v0.5.0a5","v0.5.0a6","v0.5.0b0","v0.5.0b2","v0.5.0b3","v0.5.0b4","v0.5.0b5","v0.5.0b6","v0.5.1","v0.5.10","v0.5.11","v0.5.12","v0.5.2","v0.5.3","v0.5.4","v0.5.5","v0.5.6","v0.5.7","v0.5.8","v0.5.9","v0.6.0","v0.6.0a0","v0.6.0rc1","v0.6.1","v0.6.10","v0.6.11","v0.6.12","v0.6.13","v0.6.14","v0.6.15","v0.6.16","v0.6.17","v0.6.18","v0.6.19","v0.6.2","v0.6.3","v0.6.3a0","v0.6.3a1","v0.6.3a2","v0.6.3a3","v0.6.3a4","v0.6.3a5","v0.6.3a6","v0.6.4","v0.6.5","v0.6.6","v0.6.7","v0.6.8","v0.6.9","v1.0.10","v1.0.11","v1.0.12","v1.0.13","v1.0.14","v1.0.15","v1.0.16","v1.0.17","v1.0.18","v1.0.19","v1.0.2","v1.0.3","v1.0.4","v1.0.5","v1.0.6","v1.0.7","v1.0.8","v1.0.9","v1.1.0","v1.1.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-34046.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"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"}]}