CVE-2026-53755High· 8.6▾ MidnightPoC availableCrawl4AI: SSRF via proxy settings in the Docker server bypasses the crawl-URL SSRF check
▾ Midnight zone — Critical, or high with PoC / in-the-wild
impact 47.3 · likelihood 0.3 · exploitation 12
A public proof-of-concept already exists for this vulnerability — see Exploit availability below.
Public exploit / PoC code seen in 1 source. Availability, not in-the-wild use.
Exploit-prediction probability, daily snapshots since Jul 4.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via GHSA
0.3%
0.3% → 1.6%
Nuclei ×1
The Docker API server applied its SSRF destination check to the crawl target URL only, not to the proxy address. An unauthenticated request could supply a proxy pointing at an internal IP and route the browser through it, reaching internal services and cloud-metadata endpoints, while using a perfectly valid crawl URL. The Docker API is unauthenticated by default.
/crawl, /crawl/stream, and /crawl/job accept a browser_config (and crawler_config). The following all feed Chromium's egress and were unchecked:
browser_config.proxy_config.serverbrowser_config.proxy (deprecated field)crawler_config.proxy_config.server--proxy-server / --proxy-pac-url / --proxy-bypass-list / --host-resolver-rules flags in browser_config.extra_argsAn attacker sends /crawl with a benign, validation-passing URL but a proxy_config.server pointing at an internal IP. Chromium routes all requests through that proxy. For plain-HTTP targets the proxy receives the full request and can return any content, which is then returned verbatim in the crawl result (results[0].html / cleaned_html / markdown). In a real deployment the proxy would be an attacker-controlled server pointing at cloud metadata (e.g. AWS IMDSv1 at 169.254.169.254) to retrieve IAM credential tokens.
Unauthenticated server-side request forgery to internal services and cloud-metadata endpoints, with the response returned to the attacker.
Every proxy destination is validated with the same global-routability check used for crawl URLs (reject any resolved address that is not is_global, including IPv6 transition forms) before the browser is constructed; proxy/DNS-redirecting flags are stripped from extra_args. A legitimate public proxy still works. Honors CRAWL4AI_ALLOW_INTERNAL_URLS.
CRAWL4AI_API_TOKEN).Geo (geo-chen) - reported the proxy_config.server SSRF with a clear PoC.
crawl4ai <= 0.8.8Upgrade to a patched release:
crawl4ai 0.8.9Field changes observed since this record was first indexed.
Connected by shared product, vendor, weakness, or advisory.
CVE-2026-91943High· 7.7Crawl4AI before 0.9.3 contains a server-side request forgery vulnerability in PDFContentScrapingStrategy where _get_pdf_path() re-downloads targets with Python requests without egress validation
CVE-2026-56266Critical· 9.8Crawl4AI: Multiple Docker API Vulnerabilities - File Write, SSRF, Auth Bypass, XSS, JS Execution
CVE-2026-53754High· 7.5Crawl4AI: SSRF filter bypass in Docker server via IPv6 transition forms (NAT64 / 6to4 / unspecified / v4-mapped)
GHSA-f989-c77f-r2cqHigh· 8.2Crawl4AI: LLM credential exfiltration in Docker server via request base_url and env: token resolution
GHSA-wm69-2pc3-rmmfHigh· 8.6Crawl4AI: Unauthenticated SSRF on the Docker server streaming crawl path (/crawl/stream)
CVE-2026-56265Critical· 9.8Crawl4AI: authentication bypass vulnerability due to a hardcoded default JWT signing key in the Docker API server