{"basis":"claimed","id":"CVE-2026-33017","name":"Langflow Code Injection Vulnerability","vendorProject":"Langflow","product":"Langflow","publishedAt":"2026-03-20","cvss":{"score":9.3,"severity":"CRITICAL","version":"4.0"},"exploited":{"kevAdded":"2026-03-25","dueDate":"2026-04-08","ransomware":false},"epss":{"score":0.96177,"percentile":0.99878,"date":"2026-11-02"},"coverage":{"cloudflare":{"status":"none","firstOn":null,"daysToRule":null},"aws":{"status":"none","firstOn":null,"daysToRule":null},"azure":{"status":"none","firstOn":null,"daysToRule":null},"google":{"status":"none","firstOn":null,"daysToRule":null},"fastly":{"status":"no_history","firstOn":null,"daysToRule":null},"f5":{"status":"rule","firstOn":"2026-07-07","daysToRule":109},"akamai":{"status":"no_source","firstOn":null,"daysToRule":null},"crs":{"status":"none","firstOn":null,"daysToRule":null}},"title":"Langflow has Unauthenticated Remote Code Execution via Public Flow Build Endpoint","description":"Langflow is a tool for building and deploying AI-powered agents and workflows. In versions prior to 1.9.0, the POST /api/v1/build_public_tmp/{flow_id}/flow endpoint allows building public flows without requiring authentication. When the optional data parameter is supplied, the endpoint uses attacker-controlled flow data (containing arbitrary Python code in node definitions) instead of the stored flow data from the database. This code is passed to exec() with zero sandboxing, resulting in unauthenticated remote code execution. This is distinct from CVE-2025-3248, which fixed /api/v1/validate/code by adding authentication. The build_public_tmp endpoint is designed to be unauthenticated (for public flows) but incorrectly accepts attacker-supplied flow data containing arbitrary executable code. This issue has been fixed in version 1.9.0.","cwes":["CWE-94","CWE-95","CWE-306"],"vendors":[{"vendor":"cloudflare","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"aws","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"azure","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"google","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"fastly","status":"no_history","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"f5","status":"rule","basis":"claimed","firstOn":"2026-07-07","firstIsNew":true,"daysToRule":109,"daysAtMost":null,"freePlan":false,"claims":[{"id":"771e63c3c8627c2681b2670f1cb8b07996388f39cb7624421d2f78f91a6d8108","cve_id":"CVE-2026-33017","vendor":"f5","product":"Attack signatures","rule_id":"200204067","rule_name":"Langflow Code Injection (2)","change":"new","default_action":null,"published_on":"2026-07-07","source_url":"https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog","source_title":"F5 Distributed Cloud attack signatures changelog","excerpt":"Added: signature 200204067 \"Langflow Code Injection (2)\" (Server Side Code Injection, risk High), systems: Other Web Server. References: CVE-2026-33017.","first_seen_at":"2026-11-02T21:00:24.865Z"}]},{"vendor":"akamai","status":"no_source","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"crs","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]}],"updatedAt":"2026-11-02T23:17:39.823Z","cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L","ssvc":{"exploitation":"active","automatable":"yes","technicalImpact":"total"},"measured":[{"engineId":"owasp-crs","engineName":"OWASP Core Rule Set","engineVersion":"4.25.0","runtime":"Coraza v3.8.1","config":"paranoia level 1, anomaly threshold 5, default CRS settings","ranAt":"2026-11-02T13:02:57.000Z","verdict":"partial","templateId":"CVE-2026-33017","templatePath":"http/cves/2026/CVE-2026-33017.yaml","requests":3,"blockedRequests":1,"rules":["933160"],"note":"","requestDetail":[{"method":"GET","path":"/","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/api/v1/build_public_tmp/x/flow","status":403,"blocked":true,"rules":["933160"]},{"method":"GET","path":"/api/v1/version","status":200,"blocked":false,"rules":[]}]},{"engineId":"owasp-crs","engineName":"OWASP Core Rule Set","engineVersion":"4.25.0","runtime":"Coraza v3.8.1","config":"paranoia level 2, anomaly threshold 5, default CRS settings","ranAt":"2026-11-02T13:03:28.000Z","verdict":"partial","templateId":"CVE-2026-33017","templatePath":"http/cves/2026/CVE-2026-33017.yaml","requests":3,"blockedRequests":1,"rules":["933160","934101"],"note":"","requestDetail":[{"method":"GET","path":"/","status":200,"blocked":false,"rules":[]},{"method":"POST","path":"/api/v1/build_public_tmp/x/flow","status":403,"blocked":true,"rules":["933160","934101"]},{"method":"GET","path":"/api/v1/version","status":200,"blocked":false,"rules":[]}]}],"social":{"total":0,"first_seen":null,"daily":[{"day":"2026-10-20","posts":0},{"day":"2026-10-21","posts":0},{"day":"2026-10-22","posts":0},{"day":"2026-10-23","posts":0},{"day":"2026-10-24","posts":0},{"day":"2026-10-25","posts":0},{"day":"2026-10-26","posts":0},{"day":"2026-10-27","posts":0},{"day":"2026-10-28","posts":0},{"day":"2026-10-29","posts":0},{"day":"2026-10-30","posts":0},{"day":"2026-10-31","posts":0},{"day":"2026-11-01","posts":0},{"day":"2026-11-02","posts":0}],"top_posts":[],"exploit_repositories":[]}}