Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed Crawl4AI Docker API
-
DeliverySubmit request with fetch_ssl_certificate=true and crafted userinfo URL
-
ExploitBypass destination check via userinfo parsing mismatch
-
ExecutionSSLCertificate.from_url connects to internal host:443
-
ImpactLeak certificate details and confirm internal reachability
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires (1) the Crawl4AI Docker API server (versions 0.8.7-0.9.5) to be network-reachable by the attacker, and (2) the request to set fetch_ssl_certificate=true, which triggers the vulnerable SSLCertificate.from_url path. The attacker must supply a URL whose userinfo component causes the destination/allowlist check to parse a different host than urlparse's netloc-based extraction used by the sink, so the connection resolves to an internal target. Limiting factors: the forced connection is only to TCP port 443 (pre-patch the port was hardcoded), and the disclosed data is restricted to TLS certificate metadata plus reachability inference - there is no arbitrary-port SSRF, no response body retrieval, and no write/integrity impact. No authentication or user interaction is required (PR:N/UI:N), but the fetch_ssl_certificate feature must be invokable in the target deployment. |
| Impact | This is a medium-severity SSRF (CWE-918) with a vendor-supplied CVSS 4.0 score of 6.9 (vector AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N), indicating a network-reachable, low-complexity, unauthenticated attack whose only confirmed impact is a LOW confidentiality leak with no integrity or availability impact. The signals are internally consistent and point to a genuine but bounded risk: an unauthenticated attacker can reach the flaw easily (AV:N/AC:L/PR:N/UI:N), but the payoff is limited to probing internal host reachability on port 443 and leaking TLS certificate metadata - not direct code execution or data exfiltration. No EPSS score was provided in the input, so exploitation probability cannot be quantified. The CVE is NOT listed in CISA KEV and no public exploit code was supplied; the GitHub PR and unit tests are remediation artifacts, not weaponized exploits, so this is 'no public exploit identified at time of analysis.' Net assessment: a legitimate priority for anyone exposing the Crawl4AI Docker API server to untrusted input (SSRF can pivot into internal network reconnaissance), but the low technical impact and absence of KEV/POC/EPSS signals place it below urgent-patch tier. Prioritize based on whether the Docker server is network-exposed. Note: the vendor supplied only a CVSS 4.0 vector - no CVSS 3.1 vector was provided in the input. |
| Exploit ScenarioDerived | An attacker submits a crawl or certificate-fetch request to an exposed Crawl4AI Docker API server with fetch_ssl_certificate=true and a URL crafted with misleading userinfo (e.g. https://trusted@10.0.0.5/) that parses differently in the destination-check logic than in SSLCertificate.from_url. The server connects to the attacker-chosen internal host on port 443, and timing/success plus returned certificate details reveal which internal services exist and their TLS identities. No public exploit code was provided, though the fix and its regression tests are public. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Server-side request forgery in Crawl4AI 0.8.7 through 0.9.5 lets unauthenticated, network-positioned attackers abuse the Docker API server's fetch_ssl_certificate=true path to make the service connect to internal hosts on TCP/443 and leak TLS certificate metadata or infer reachability. The vendor CVSS 4.0 score is 6.9, while the independent assessment is CVSS 3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N, reflecting low confidentiality impact only. No public exploit identified at time of analysis.
RemediationAI
Upstream fix available via PR https://github.com/unclecode/crawl4ai/pull/2304; a released patched version is not independently confirmed in the provided data. Apply the upstream fix and, until deployed, disable the fetch_ssl_certificate feature or restrict the Crawl4AI Docker API server to trusted networks; this removes certificate-fetching functionality or limits legitimate API clients. Enforce egress controls so the Crawl4AI server cannot reach internal networks on TCP/443, with the trade-off that legitimate crawls to external HTTPS targets must be explicitly allowed. Do not rely solely on URL allowlists that may parse userinfo differently from the request sink; validate destinations with a single canonical parser such as urlparse(url).hostname and reject missing or ambiguous hostnames.
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 CWE-918 server-side request forgery in Crawl4AI's Docker API server certificate-fetching feature. The root cause is inconsistent URL host extraction when a URL contains userinfo: the destination/allowlist check and SSLCertificate.from_url do not resolve the same host, so a crafted userinfo URL can cause the certificate-fetch sink to connect to an internal target while the check evaluates a different destination. Pre-patch from_url derived the hostname from urlparse(url).netloc and split on ':' rather than using parsed.hostname, with the port hardcoded to 443. The upstream fix in PR #2304 switches to urlparse(url).hostname, honors parsed.port, rejects URLs without a hostname, and adds tests covering userinfo, explicit ports, and IPv6 literals. Because the vulnerable path only performs a TLS handshake and returns certificate fields, impact is limited to internal reachability probing and TLS certificate metadata disclosure on TCP/443, not arbitrary response-body retrieval or arbitrary-port SSRF.
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:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable, low-complexity, unauthenticated SSRF with no user interaction; impact limited to low-confidentiality leak of certificate metadata and internal reachability, with no integrity or availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Crawl4AI from 0.8.7 through 0.9.5 contains a server-side request forgery vulnerability in the Docker API server that allows unauthenticated attackers to bypass destination checks via URL userinfo parsing differences. Attackers can set fetch_ssl_certificate=true with crafted userinfo URLs so SSLCertificate.from_url connects to internal hosts on port 443, probing reachability and leaking certificate details.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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-104403
GHSA-vjf2-p5h6-wg3v
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB