Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover exposed Crawl4AI Docker API
-
DeliverySend crafted request with malicious browser_config.extra_args
-
ExploitInject child-process launcher plus --no-zygote
-
ExecutionChromium forks attacker-controlled command
-
ImpactArbitrary code execution as container user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
|
| Exploitation Conditions | Exploitation requires network reachability to the Crawl4AI Docker API server and that the request path accepts browser_config.extra_args (the default behavior prior to 0.9.0). Because the Docker API is unauthenticated by default and the CVSS vector is AV:N/AC:L/PR:N/UI:N, no credentials, user interaction, or special configuration are needed against a default deployment - the injected --no-zygote plus a child-process launch-command switch are the only crafted inputs. The key limiting factor is exposure: the target instance must be reachable by the attacker, so instances bound to localhost, restricted by firewall/ACLs, or placed behind added authentication are not exploitable by remote unauthenticated attackers. |
| Impact | This is a genuine top-priority issue, not a high-CVSS-but-low-risk artifact. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0) aligns cleanly with the description: network-reachable, low complexity, no privileges, no user interaction, full impact. The default-unauthenticated Docker API removes the only meaningful barrier, making exploitation trivial where the service is network-exposed. No EPSS score, SSVC decision, KEV listing, or POC flag was supplied in the input, so exploitation probability and automatability cannot be quantified from the data - however, the primitive (single unauthenticated request to RCE) is inherently automatable, so absence of an EPSS/KEV signal reflects missing data rather than low real risk. The main risk-limiting factor is exposure: instances bound only to localhost or behind authentication/network controls are not reachable by remote attackers. |
| Exploit ScenarioDerived | An attacker scans for internet-exposed Crawl4AI Docker API endpoints and sends a single crafted crawl request whose browser_config.extra_args includes a child-process-launcher override plus --no-zygote pointing at an attacker-chosen command. When Crawl4AI launches Chromium with those injected switches, Chromium execs the attacker's command as the container runtime user, yielding immediate arbitrary code execution. No authentication or user interaction is required, and given AV:N/AC:L this is readily scriptable at scale. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 06, 2026
Remote code execution in Crawl4AI's Docker API server (versions prior to 0.9.0) lets unauthenticated attackers run arbitrary commands as the container runtime user. The server passes request-supplied browser_config.extra_args directly into Chromium's launch arguments, enabling argument injection (CWE-88) of a malicious child-process launcher combined with --no-zygote. Because the Docker API is unauthenticated by default and CVSS is scored 10.0, a single crafted HTTP request achieves full container compromise; no public exploit identified at time of analysis and it is not listed in CISA KEV.
RemediationAI
Vendor-released patch: upgrade to Crawl4AI 0.9.0, which is the authoritative fix per the GHSA advisory (https://github.com/unclecode/crawl4ai/security/advisories/GHSA-r253-r9jw-qg44) and commit 60886d1a0c52682e4c83a7cef9dfac417fff6bd2. If immediate upgrade is not possible, do not expose the Docker API server to untrusted networks: bind it to localhost or place it behind an authenticating reverse proxy and network ACLs, since the API is unauthenticated by default - the trade-off is loss of remote programmatic access. As a defense-in-depth measure until patched, reject or strip client-supplied browser_config.extra_args at a proxy layer and run the container as a minimally privileged, non-root user with a read-only filesystem and dropped capabilities to limit the blast radius of any injected command; note this reduces but does not eliminate command execution within the container.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Crawl4AI is an open-source, LLM-oriented web crawler/scraper that drives a headless Chromium instance, deployable as a Docker API service. The root cause is CWE-88 (argument/switch injection): the API trusts client-controlled browser_config.extra_args and forwards them verbatim to Chromium's command line. Chromium supports switches such as --renderer-cmd-prefix / launcher-override behavior that dictate how child processes are spawned; combined with --no-zygote (which disables the zygote pre-fork model and forces Chromium to fork/exec each child directly), an attacker can substitute the child-process launch command with an arbitrary binary. The affected product per CPE is cpe:2.3:a:unclecode:crawl4ai:*:*:*:*:*:*:*:* (all versions before the 0.9.0 fix).
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
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Default-unauthenticated network API gives AV:N/AC:L/PR:N/UI:N with full C/I/A from RCE; I assess S:U since execution stays within the container's authority, whereas NVD scored S:C (10.0).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Crawl4AI is an open-source LLM-friendly web crawler and scraper. Prior to 0.9.0, the Docker API server accepted request-supplied browser_config.extra_args, which flowed into Chromium's launch arguments. An attacker could inject Chromium switches that replace a child-process launch command together with --no-zygote, causing Chromium to fork or exec an attacker-controlled command as the container's runtime user. The Docker API is unauthenticated by default, so a single request yields arbitrary command execution. This issue is fixed in version 0.9.0.
Articles & Coverage 2
Executive ViewAI
Crawl4AI Docker API server (versions prior to 0.9.0) contains a critical unauthenticated remote code execution vulnerability enabling arbitrary command execution with container runtime privileges. Organizations using affected versions face immediate risk of complete system compromise, data theft, and lateral movement within container environments. Immediate isolation or upgrade is required.
No vendor-released patch identified at time of analysis. Interim mitigations if upgrade is delayed: (1) Restrict Docker API endpoint network access via firewall rules to authorized internal systems only; (2) Disable the Docker API port entirely if the service is not actively used; (3) Deploy an authentication layer (nginx reverse proxy, API gateway, or OAuth2 middleware) requiring credentials before Docker API access; (4) Implement container runtime monitoring (Falco, AquaSec) to alert on anomalous process execution; (5) Configure network egress filtering to prevent compromised containers from exfiltrating data; (6) Monitor HTTP request logs for malicious browser_config payloads containing process launcher arguments.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
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
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
Credential exfiltration in Crawl4AI's Docker API server (all versions before 0.8.8) lets remote unauthenticated attacker
EUVD-2026-41936
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB