Severity by source
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated network endpoint executes attacker JavaScript (PR:N), but high complexity (AC:H) reflects the dependence on an exposed Docker server and reachable internal targets; full code-execution impact gives C/I/A:H.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
Crawl4AI before 0.8.7 contains an arbitrary JavaScript execution vulnerability in the Docker API server's /execute_js endpoint, which accepts and executes arbitrary user-supplied JavaScript in the server's browser context with --disable-web-security enabled. An attacker can execute arbitrary JavaScript and, combined with the browser's relaxed security settings, perform server-side request forgery against internal services.
Articles & Coverage 1
AnalysisAI
Arbitrary JavaScript execution in Crawl4AI's Docker API server (versions before 0.8.7) lets remote attackers submit code to the /execute_js endpoint, which runs it inside the server's Chromium browser context launched with --disable-web-security. Because the browser's same-origin and CORS protections are disabled, attacker-controlled JavaScript can pivot into server-side request forgery against internal services and metadata endpoints. No public exploit has been identified at time of analysis, and the CVSS 4.0 base score is 9.2 (critical), though the vector's high attack complexity and present attack requirements indicate exploitation is not fully trivial.
Technical ContextAI
Crawl4AI is an open-source, LLM-oriented web crawling and scraping framework that ships an optional Docker API server exposing HTTP endpoints. The /execute_js endpoint is designed to run user-supplied JavaScript inside a headless browser (Playwright/Chromium) to render and manipulate pages. The root cause maps to CWE-94 (Improper Control of Generation of Code / Code Injection): the server treats request input as executable code with no sandboxing of the action. The danger is amplified by the browser being launched with --disable-web-security, which removes same-origin policy and CORS enforcement, so injected JavaScript can issue cross-origin fetches to internal hosts the server can reach. The single affected component is identified by cpe:2.3:a:crawl4ai:crawl4ai:*:*:*:*:*:*:*:* across all versions prior to 0.8.7.
RemediationAI
Upgrade to Crawl4AI 0.8.7 or later, the vendor-released patched version, as the primary fix (see advisory https://github.com/unclecode/crawl4ai/security/advisories/GHSA-365w-hqf6-vxfg). If immediate patching is not possible, do not expose the Docker API server to untrusted networks: bind it to localhost or place it behind authentication and a reverse proxy, and restrict network access to the /execute_js endpoint via firewall rules - accepting that this disables remote use of the JS-execution feature for legitimate clients. Where feasible, run the container with egress network controls (deny outbound access to internal/metadata ranges such as 169.254.169.254 and RFC1918 hosts) to blunt the SSRF impact, noting this may break crawling of intended internal targets. Removing the --disable-web-security browser flag, if your deployment allows configuring it, restores same-origin/CORS protections and materially reduces the SSRF pivot, at the cost of breaking crawls that relied on relaxed cross-origin behavior.
An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl
runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac
Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post
Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten
Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build
Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config
Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per
Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l
Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c
Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2
Same weakness CWE-94 – Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-40431
GHSA-g2pv-76hm-j4x9