Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed Crawl4AI Docker endpoint
-
DeliverySubmit crawl of attacker-controlled URL
-
ExploitRobotsParser.can_fetch follows redirect/DNS rebind
-
ExecutionServer requests internal/metadata address
-
ImpactEnumerate internal services and egress bypass
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 reaching the Crawl4AI Docker service (the egress-controlled component referenced in the description) and exercising the robots.txt-fetch path via RobotsParser.can_fetch - i.e., the check_robots_txt behavior must be in effect when the server processes an attacker-influenced target URL. The attack specifically leverages HTTP redirects or DNS rebinding to defeat address/egress filtering and reach loopback, internal, or cloud-metadata endpoints. Limiting factors: the SSRF is blind (no direct response disclosure, lowering data-exfiltration value to confidentiality:low), impact is maximized only in cloud environments that expose a metadata service, and realistic risk assumes the Docker server is reachable by untrusted callers; if check_robots_txt is not engaged for attacker-supplied URLs, the path is not triggered. |
| Impact | This is a CVSS 4.0 6.9 (Medium) blind SSRF (CWE-918) in Crawl4AI's RobotsParser.can_fetch. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N) indicates a network-reachable, low-complexity, unauthenticated flaw whose only measurable direct impact is low confidentiality (VC:L) with no integrity or availability impact - consistent with a *blind* SSRF used for service discovery and egress-control bypass rather than direct data theft. No EPSS score, CISA KEV listing, or POC indicator was supplied in the input, so there is no public evidence of active exploitation or weaponization; the real-world threat is currently inferred from the primitive itself (reaching loopback, internal, and cloud-metadata endpoints such as 169.254.169.254), which can be high-value in cloud deployments where metadata exposes credentials. The practical risk is tempered by the blind nature (attacker does not directly see responses) and by the dependency on the check_robots_txt behavior being engaged. Net: a legitimate priority for anyone running the Crawl4AI Docker service exposed to untrusted input, but not an emergency absent exploitation signals - the missing EPSS/KEV/POC data means prioritization should be driven by exposure (is the Docker server reachable by untrusted callers and is it in a cloud/metadata-bearing environment) rather than by headline severity. |
| Exploit ScenarioDerived | An attacker with network access to an exposed Crawl4AI Docker server submits a crawl targeting an attacker-controlled host while the robots.txt check path is active. Using an HTTP redirect or DNS rebinding, the server is coerced into fetching internal, loopback, or cloud-metadata addresses (e.g., 169.254.169.254), bypassing egress controls to enumerate internal services. No public POC was identified in the provided data, and because the SSRF is blind, the attacker infers reachability through timing/behavioral signals rather than direct response contents. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Blind server-side request forgery in Crawl4AI before 0.9.4 lets unauthenticated remote attackers bypass Docker egress controls via the RobotsParser.can_fetch robots.txt fetch path, using HTTP redirects or DNS rebinding to reach loopback, internal, and cloud-metadata addresses for service discovery. Rated CVSS 4.0 6.9 (Medium), exploitation requires the check_robots_txt behavior to be in effect when the service processes an attacker-influenced target URL, which makes the Docker service being reachable by untrusted callers a precondition. The SSRF is blind, so responses are not returned to the attacker, keeping confidentiality impact low; no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Upgrade Crawl4AI to 0.9.4 or later, the version boundary at which the flawed robots.txt fetch path is fixed per the GitHub advisory GHSA-f77g-77vp-r96v; treat any deployment below 0.9.4 with check_robots_txt enabled as vulnerable. Where an immediate upgrade is not possible, apply layered compensating controls and accept their trade-offs: disable check_robots_txt for attacker-influenced target URLs (loses robots.txt compliance and polite-crawl behavior but removes the specific vulnerable path), run the crawler with an outbound proxy or egress firewall that re-resolves and enforces allow-listing after every redirect hop (adds latency and requires maintenance of the allow-list), block egress to 127.0.0.0/8, RFC1918 ranges, fd00::/8, and the link-local metadata range 169.254.169.254 at the container/host network layer (may break legitimate internal integrations), disable HTTP redirects in the crawler's HTTP client or cap redirect depth (can break crawling of sites that rely on redirects), and on cloud hosts enforce IMDSv2-only access or disable the instance metadata service entirely (IMDSv2 mitigates metadata abuse but does not prevent probing of other internal services). Because the SSRF is blind, monitoring should focus on anomalous egress attempts to loopback, private, and metadata addresses from crawler containers rather than on response exfiltration signatures. Note that no public exploit code and no confirmed active exploitation were identified at time of analysis, so prioritization should reflect the medium CVSS 4.0 score of 6.9 and the precondition that untrusted callers must be able to reach the Docker service and trigger the robots.txt fetch path.
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 a classic CWE-918 server-side request forgery rooted in the web-crawling stack of Crawl4AI, a Python scraping/crawling framework frequently containerized and deployed as a Docker service. When check_robots_txt is enabled, RobotsParser.can_fetch resolves the caller-supplied URL and issues an HTTP request for its /robots.txt before crawling. The root cause is that the destination address is validated (or filtered by Docker egress rules) at one point in time, but the fetch follows HTTP redirects and performs a fresh DNS resolution at connection time, creating a TOCTOU gap. Redirect chains and DNS rebinding - where a hostname first resolves to a benign public address during the check and then to 127.0.0.1, RFC1918 space, or the cloud metadata endpoint (169.254.169.254) at fetch time - defeat the address/egress filtering. Because the reply is consumed internally and never surfaced to the attacker, the primitive is a blind SSRF, valuable for internal service discovery, port/host probing via timing or error differentials, and metadata-service interaction rather than direct response exfiltration. The CPE cpe:2.3:a:unclecode:crawl4ai:*:*:*:*:*:*:*:* identifies the unclecode Crawl4AI package as the affected component across all versions below the 0.9.4 boundary.
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 (PR:N) SSRF; blind service discovery yields only low confidentiality with no integrity/availability impact, and no cross-security-authority scope change is established.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Crawl4AI before 0.9.4 contains a blind server-side request forgery vulnerability in RobotsParser.can_fetch that lets unauthenticated attackers bypass Docker server egress controls. Attackers can enable check_robots_txt and use redirects or DNS rebinding to reach internal, loopback, or cloud-metadata addresses for service discovery.
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-97683
GHSA-qm8q-557r-p5w7
NVD
CVE.org
EPSS
Exploit-DB