Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Docker API with token
-
DeliverySubmit crawl request with malicious model_name
-
ExploitServer downloads attacker HuggingFace repo
-
ExecutionPickle weight deserializes and runs Python
-
ImpactExfiltrate LLM keys or exhaust disk/memory
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a Crawl4AI Docker API server deployment built with the cosine, transformer, or all extras (for example INSTALL_TYPE=all) and a writable HuggingFace cache - the default image (INSTALL_TYPE=default) installs neither PyTorch nor transformers and is not affected. A valid API token is required (authenticated per PR:L). The arbitrary-code-execution outcome additionally requires the server to run PyTorch older than 2.6 together with a transformers release that lacks the CVE-2025-32434 .bin-weights refusal; on PyTorch 2.6+ this path is closed and exploitation is limited to attacker-chosen model downloads that exhaust disk and memory. The library used directly is not affected unless an application passes untrusted input into CosineStrategy(model_name=...). Limiting factors: authentication, the non-default install profile, and the legacy-PyTorch precondition for code execution. |
| Impact | Signals are moderate and partly conditional. The supplied CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H) scores 7.7 (High): network-reachable and high impact on the vulnerable system, but gated by PR:L (a valid API token is required) and by AC:H/AT:P, reflecting that full code execution depends on an environmental precondition the attacker does not control - the server must run PyTorch below 2.6 together with a transformers release lacking the CVE-2025-32434 guard. The vuln.today decision label is 'this_week', not act_now/emergency. There is no CISA KEV listing (not actively exploited per available data) and no EPSS score was provided, so widespread-exploitation probability cannot be quantified from the input. The GHSA advisory publishes a working-looking curl proof of concept, but the input does not mark it as confirmed weaponized exploit code. Net: this is a genuine authenticated RCE/DoS on a specific deployment profile (Docker API server with the cosine/transformer/all extras) rather than a mass-exploitable internet-wide critical - treat it as a real near-term patch priority for affected Docker operators, but its blast radius is bounded by the authentication requirement and the legacy-PyTorch precondition. On current PyTorch the code-execution path is closed and only the disk/memory-exhaustion (availability) impact remains. |
| Exploit ScenarioDerived | An attacker holding a valid Crawl4AI Docker API token sends a crawl request whose CosineStrategy extraction_strategy sets model_name to an attacker-controlled HuggingFace repository; the server downloads and loads that repo, and on PyTorch older than 2.6 a crafted .bin pickle weight file runs arbitrary Python in the server process, exposing environment secrets such as LLM provider keys. The GHSA advisory includes a proof-of-concept curl request; because exploitation requires AC:H/AT:P conditions (legacy PyTorch and a token), it is not a trivial drive-by, and on current PyTorch the attacker is limited to forcing large model downloads that exhaust disk and memory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 29, 2026
Authenticated Crawl4AI Docker API clients can select an arbitrary HuggingFace model through the unfiltered CosineStrategy model_name field, enabling arbitrary Python execution when the server runs PyTorch below 2.6 with an older transformers release, and otherwise enabling attacker-chosen model downloads that can exhaust disk and memory. Affected releases are Crawl4AI 0.9.0 through 0.9.4; the default Docker image without the cosine, transformer, or all extras is not affected. A public proof-of-concept request is documented in the advisory, but it is not verified as working exploit code and active exploitation is not indicated.
RemediationAI
Upgrade Crawl4AI to 0.9.5, which refuses untrusted request bodies that set CosineStrategy.model_name so such requests receive the default model. Consult the GitHub advisory at https://github.com/unclecode/crawl4ai/security/advisories/GHSA-f856-7xp9-w3cc and the VulnCheck advisory at https://www.vulncheck.com/advisories/crawl4ai-0.9.0-before-0.9.5-untrusted-model-loading-via-cosinestrategy-model-name. If upgrading immediately is not possible, reject crawler_config bodies containing model_name at the reverse proxy; this blocks the attack but also prevents legitimate per-request model selection. Upgrade PyTorch to 2.6 or newer to close the pickle-based code-execution path, though this does not prevent attacker-chosen model downloads from consuming disk and memory. Pre-fill the HuggingFace cache with the approved model and set HF_HUB_OFFLINE=1 to prevent arbitrary downloads, at the cost of losing dynamic model fetching. Use the default image if cosine extraction is not needed, which removes PyTorch and transformers and the associated attack surface but also removes cosine extraction capability.
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
This is a CWE-502 deserialization risk compounded by CWE-829 inclusion of functionality from an untrusted control sphere. CosineStrategy is listed in UNTRUSTED_ALLOWED_TYPES but has no entry in UNTRUSTED_FIELD_ALLOWLIST, and model_name is not in UNTRUSTED_GLOBAL_FORBIDDEN_FIELDS, so _filter_untrusted_fields keeps it. CosineStrategy.__init__ passes model_name to load_HF_embedding_model, which calls AutoTokenizer.from_pretrained and AutoModel.from_pretrained without restricting the repository; those downloads do not go through the server's egress controls. Transformers loads .bin weights with torch.load(weights_only=True), and current transformers releases refuse .bin weights unless PyTorch is 2.6 or newer, as covered by CVE-2025-32434. Code execution therefore depends on PyTorch below 2.6 plus a transformers release lacking that check; on current PyTorch the same request still causes the server to download, write, and retain an attacker-selected model, which can exhaust disk and memory. The assessed vector is CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, with authentication and non-default install prerequisites limiting exposure. The library used directly is not affected unless an application passes untrusted input into CosineStrategy(model_name=...).
Know when Crawl4ai 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable Docker API with required API token (PR:L); AC:H because code execution depends on an attacker-uncontrolled PyTorch<2.6/transformers precondition; full C/I/A loss on in-process RCE, no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Crawl4AI from 0.9.0 before 0.9.5 fails to filter the CosineStrategy model_name field in untrusted Docker API request bodies, allowing authenticated clients to choose which HuggingFace model the server loads. Attackers can reference a malicious repository with a pickle weight file to execute Python code under PyTorch below 2.6, or exhaust disk and memory.
Articles & Coverage 2
Technical POC Analysis
CWE-502 (Deserialization of Untrusted Data); the advisory also tags CWE-829 (Inclusion of Functionality from Untrusted Control Sphere).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Crawl4AI versions 0.9.0 through 0.9.4 contain a high-severity vulnerability that allows authenticated users to execute arbitrary code or cause resource exhaustion. Organizations using these versions in their Docker deployments with machine learning extensions are at risk of system compromise or service disruption. Leadership should prioritize remediation because this affects the integrity and availability of data processing systems.
Restrict API access to trusted users, upgrade PyTorch to 2.6+ and transformers to a secure version, or disable CosineStrategy model selection by using a fixed model or removing the feature.
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
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
Remote code execution in Crawl4AI Docker API before 0.8.0 via hooks parameter. The /crawl endpoint accepts Python code i
Authentication bypass in Crawl4AI Docker API server (versions prior to 0.8.7) allows remote unauthenticated attackers to
Arbitrary local file disclosure in Crawl4AI's Docker API (versions before 0.8.0) lets unauthenticated remote attackers r
Remote code execution in Crawl4AI's Docker API server (versions prior to 0.9.0) lets unauthenticated attackers run arbit
Arbitrary file write in Crawl4AI (the open-source LLM-friendly web crawler by unclecode) before version 0.9.0 lets a mal
Arbitrary file write in Crawl4AI Docker API server before 0.8.8 lets unauthenticated remote attackers escape the ALLOWED
Arbitrary JavaScript execution in Crawl4AI's Docker API server (versions before 0.8.7) lets remote attackers submit code
Server-side request forgery in Crawl4AI's Docker API server (versions before 0.8.7) allows remote unauthenticated attack
Server-side request forgery in Crawl4AI (unclecode) versions 0.7.0 through 0.9.3 lets unauthenticated, remote API client
Server-side request forgery in Crawl4AI before 0.8.7 allows unauthenticated remote attackers to coerce the server into f
Crawl4AI <=0.4.247 is vulnerable to SSRF in /crawl4ai/async_dispatcher.py. Rated critical severity (CVSS 9.1), this vuln
Arbitrary file write in Crawl4AI's Docker API server (versions before 0.8.7) lets remote unauthenticated attackers overw
EUVD-2026-113187
GHSA-3x32-3792-pvfc
NVD
CVE.org
EPSS
Exploit-DB