Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach ComfyUI web server
-
DeliverySend model-preview request with traversal filename
-
ExploitEscape model directory via ../ or absolute path
-
ExecutionServer decodes file through Pillow
-
PersistRead image or observe existence oracle
-
ImpactEnumerate host paths and internal structure
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires network access to ComfyUI's built-in web server and a reachable model preview request handled by get_model_preview in app/model_manager.py on any version before 0.28.0 - no authentication, credentials, or user interaction are needed (AV:N/AC:L/PR:N/UI:N against default configurations, since ComfyUI ships without authentication). The attacker must supply the traversal via the {filename:.*} route capture (literal ../, encoded %2e%2e%2f, or an absolute path) or an out-of-range path_index. Key LIMITING factors: full content disclosure is restricted to files Pillow can decode and re-encode as WEBP (images); all other files yield only a file-existence/enumeration oracle plus internal-path leakage rather than raw content, so this is not a general arbitrary-text-file read. Exploitation is also gated by the server being network-exposed, which is not the default binding for many local installs. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, base 7.5) indicates a network-reachable, low-complexity, unauthenticated read primitive with no integrity or availability impact - consistent with the description of an unauthenticated remote traversal oracle. Real-world impact is meaningfully constrained by the design: the target file is piped through Pillow and re-encoded as WEBP, so full content disclosure is limited to image-decodable files, while non-image files yield only a file-existence/enumeration signal and internal path leakage - arguably closer to C:L for arbitrary secrets, though C:H is defensible given unrestricted host-path enumeration and disclosure of any image on disk. No EPSS score, KEV entry, POC, or SSVC decision data was provided in the input, so probability-of-exploitation and automatability cannot be quantified from these sources; the absence of KEV and POC signals suggests this is not yet weaponized. Net: a genuine unauthenticated exposure worth prompt patching, but the image-only content constraint makes it a reconnaissance/limited-disclosure issue rather than a direct arbitrary-file-read of credentials. |
| Exploit ScenarioDerived | A remote attacker who can reach the ComfyUI HTTP interface sends a crafted request to the model preview endpoint with a filename such as ../../../../ or an absolute path, using literal or percent-encoded traversal, to enumerate host directories and read any image-decodable file outside the model folder. By observing successful WEBP responses versus errors (including path_index error messages), the attacker maps the filesystem and confirms file existence. No authentication or user interaction is required (PR:N/UI:N); no public POC is currently identified. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 31, 2026
Unauthenticated information disclosure in ComfyUI (comfy-org/comfyui) before 0.28.0 lets remote attackers read arbitrary image-decodable files and enumerate the host filesystem via the get_model_preview endpoint, which joins an unrestricted {filename:.*} route capture to the model directory with no containment check (CWE-22). Attackers can use literal ../, percent-encoded %2e%2e%2f, absolute paths, or an unbounded path_index to escape the model folder; disclosure is bounded to files Pillow can decode plus a file-existence/path-enumeration oracle. No public exploit identified at time of analysis, and it is not listed in CISA KEV; the issue is fixed in version 0.28.0.
RemediationAI
Vendor-released patch: upgrade to ComfyUI 0.28.0 or later (https://github.com/Comfy-Org/ComfyUI/releases/tag/v0.28.0), which adds path normalization and a realpath-based is_within_directory() containment check in app/model_manager.py plus validation of the filename and path_index parameters; see advisory GHSA-pj59-g5vv-74q4 and PR #14734. If immediate upgrade is not possible, do not expose the ComfyUI web server directly to untrusted networks - bind it to localhost or place it behind a reverse proxy/VPN and require authentication, since ComfyUI ships without authentication by default (trade-off: breaks remote multi-user access). As a targeted stopgap, block or filter requests to the model preview route (the /view / get_model_preview handler) at the proxy and reject requests whose filename contains traversal sequences, encoded traversal (%2e), or absolute paths (trade-off: may break legitimate preview thumbnails). Running the process under a least-privileged user on a container/host with minimal readable image files limits the value of the disclosure oracle.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ComfyUI is a widely used node/graph-based GUI, API and backend for diffusion (Stable Diffusion-style) image generation models, exposing an aiohttp web server. The flaw lives in get_model_preview within app/model_manager.py, which constructed a filesystem path with os.path.join(folder, filename) where filename came from an aiohttp route capture defined as {filename:.*} - an unrestricted regex matching any characters including path separators and traversal sequences. Because os.path.join discards the base folder when the second argument is absolute, and because no normalization or prefix check was applied, both relative traversal and absolute paths escaped the intended model directory. The additional path_index parameter was parsed as an int with no bounds validation, producing internal-path leakage through error messages. This is a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) root cause; the vendor fix adds os.path.normpath plus a folder_paths.is_within_directory() containment check (using realpath + commonpath to also defeat symlink escape), rejects empty filenames and out-of-range path_index, and hardens sibling endpoints against dangerous content-type inline rendering.
Know when Comfyui gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Unauthenticated network traversal with low complexity (PR:N/AC:L/AV:N) yields file/host-path disclosure (C:H) but no write or availability impact (I:N/A:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ComfyUI is a modular diffusion model GUI, api and backend with a graph/nodes interface. Prior to 0.28.0, get_model_preview in app/model_manager.py joins an unrestricted filename route capture to a selected model directory without a containment check, allowing an unauthenticated remote attacker to use traversal, encoded traversal, absolute paths, or an unbounded path_index to read image-decodable files and enumerate host paths. get_model_preview (app/model_manager.py) built the path with os.path.join(folder, filename) where filename is an unrestricted {filename:.*} route capture. Literal ../, percent-encoded %2e%2e%2f, and absolute paths all escaped the model directory; path_index was also unbounded. The target file is piped through Pillow and re-encoded as WEBP, so disclosure is limited to image-decodable files plus a file-existence/enumeration oracle (and internal-path leakage via path_index errors). This issue is fixed in version 0.28.0.
Executive ViewAI
ComfyUI versions before 0.28.0 contain an unauthenticated path traversal vulnerability allowing remote attackers to read arbitrary files and enumerate the host filesystem without authentication. Any organization exposing ComfyUI to untrusted networks risks disclosure of sensitive AI models, configuration data, and system information that could enable further attacks.
Vendor-released patch: ComfyUI 0.28.0. If immediate patching is not feasible, restrict network access to ComfyUI to trusted internal networks only, disable unauthenticated access to the get_model_preview endpoint via reverse proxy or WAF, and enable detailed logging of all requests to that endpoint for forensic review.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Arbitrary file write via path traversal in ComfyUI before 0.30.0 lets an attacker place attacker-controlled content anyw
comfyanonymous/comfyui version v0.2.4 suffers from a non-blind Server-Side Request Forgery (SSRF) vulnerability. Rated h
A stored cross-site scripting (XSS) vulnerability exists in comfyanonymous/comfyui version 0.2.2 and possibly earlier. R
Remote code execution in ComfyUI v0.23.0 (and all prior 0.x releases) lets unauthenticated attackers run arbitrary Pytho
Stored cross-site scripting in ComfyUI (Comfy-Org) before 0.28.0 lets an attacker upload HTML or SVG to the per-user use
Stored cross-site scripting in ComfyUI before 0.28.0 lets an attacker upload a malicious SVG that the /view endpoint ser
Path traversal arbitrary file read in ComfyUI (comfy-org) before 0.28.0 lets remote unauthenticated attackers probe arbi
Path traversal in ComfyUI up to version 0.13.0 allows authenticated remote attackers to read arbitrary files on the serv
Path traversal in ComfyUI up to version 0.13.0 allows authenticated remote attackers to read arbitrary files via manipul
Cross-site request forgery (CSRF) in ComfyUI up to version 0.13.0 allows unauthenticated remote attackers to modify appl
Cross-site scripting (XSS) in ComfyUI up to version 0.13.0 allows authenticated remote attackers to inject malicious scr
Stored cross-site scripting (XSS) in ComfyUI's userdata endpoint (getuserdata function in app/user_manager.py) allows au
EUVD-2026-51401
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB