Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Unauthenticated network SSRF (AV:N/AC:L/PR:N/UI:N) that pivots to other systems justifies S:C with C:H for exposed internal data; no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Crawl4AI is an open-source LLM-friendly web crawler and scraper. Prior to 0.9.0, the Docker API server applied its SSRF destination check on the non-streaming /crawl path but not on the streaming path. handle_stream_crawl_request passed seed URLs straight to the crawler with no destination validation, allowing a remote unauthenticated client to call POST /crawl/stream or POST /crawl with crawler_config.stream=true with a URL pointing at an internal, private, or link-local address; the server fetched it and streamed the response body back. This issue is fixed in version 0.9.0.
Articles & Coverage 1
AnalysisAI
Server-side request forgery in Crawl4AI's Docker API server (versions prior to 0.9.0) lets a remote unauthenticated client coerce the server into fetching attacker-chosen internal, private, or link-local URLs and streaming the response body back. The SSRF destination allowlist check was enforced on the non-streaming /crawl path but omitted from the streaming code path, so requests to POST /crawl/stream - or POST /crawl with crawler_config.stream=true - bypass validation entirely. No public exploit identified at time of analysis, but the fix is public in commit 60886d1 and the root cause (a guard applied to one path but not its sibling) is trivial to reproduce.
Technical ContextAI
Crawl4AI is an open-source, LLM-oriented web crawler and scraper commonly deployed as a self-hosted Docker API server that accepts seed URLs and returns fetched/extracted page content. The affected component is the request handler layer: the codebase already implemented an SSRF destination check to reject internal/private targets, but handle_stream_crawl_request forwarded seed URLs directly to the crawler engine without invoking that validation. This is a textbook CWE-918 (Server-Side Request Forgery) defect of the 'inconsistent enforcement' variety - the security control exists but is not uniformly applied across all entry points. The single affected product per CPE is cpe:2.3:a:unclecode:crawl4ai:*, all versions below 0.9.0.
RemediationAI
Upgrade to Crawl4AI 0.9.0, which adds the missing SSRF destination validation to the streaming path (Vendor-released patch: 0.9.0; upstream fix 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, and use egress firewall rules or a forward proxy to block the server from reaching RFC1918 ranges, link-local 169.254.0.0/16 (including cloud metadata endpoints such as 169.254.169.254), and loopback - accepting that this also blocks any legitimate internal crawling. As a stopgap you can disable or block the POST /crawl/stream endpoint and reject requests carrying crawler_config.stream=true at the proxy, at the cost of losing streaming functionality. Refer to https://github.com/unclecode/crawl4ai/security/advisories/GHSA-wm69-2pc3-rmmf.
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-918 – Server-Side Request Forgery (SSRF)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41935