Skip to main content

Crawl4AI CVE-2026-109239

| EUVDEUVD-2026-97683 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-12 VulnCheck GHSA-qm8q-557r-p5w7
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed Crawl4AI Docker endpoint
  2. Delivery
    Submit crawl of attacker-controlled URL
  3. Exploit
    RobotsParser.can_fetch follows redirect/DNS rebind
  4. Execution
    Server requests internal/metadata address
  5. Impact
    Enumerate 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Crawl4AI 0 <0.9.4

Affected Packages

euvd crawl4ai fix: 0.9.4

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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 12, 2026 - 18:03 EUVD
CVE Published
Oct 12, 2026 - 16:04 cve.org
MEDIUM 6.9

DescriptionCVE.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

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular open-source AI/LLM web-crawler, growing but non-enterprise-ubiquitous footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

CVE-2026-26216 CRITICAL POC
10.0 Feb 12

Remote code execution in Crawl4AI Docker API before 0.8.0 via hooks parameter. The /crawl endpoint accepts Python code i

CVE-2026-56265 CRITICAL POC
9.3 Jun 21

Authentication bypass in Crawl4AI Docker API server (versions prior to 0.8.7) allows remote unauthenticated attackers to

CVE-2026-26217 CRITICAL POC
9.2 Feb 12

Arbitrary local file disclosure in Crawl4AI's Docker API (versions before 0.8.0) lets unauthenticated remote attackers r

CVE-2026-57572 CRITICAL
10.0 Jul 06

Remote code execution in Crawl4AI's Docker API server (versions prior to 0.9.0) lets unauthenticated attackers run arbit

CVE-2026-57571 CRITICAL
9.6 Jul 06

Arbitrary file write in Crawl4AI (the open-source LLM-friendly web crawler by unclecode) before version 0.9.0 lets a mal

CVE-2026-56258 CRITICAL
9.2 Jun 23

Arbitrary file write in Crawl4AI Docker API server before 0.8.8 lets unauthenticated remote attackers escape the ALLOWED

CVE-2026-56264 CRITICAL
9.2 Jun 30

Arbitrary JavaScript execution in Crawl4AI's Docker API server (versions before 0.8.7) lets remote attackers submit code

CVE-2026-56261 CRITICAL
9.2 Jul 10

Server-side request forgery in Crawl4AI's Docker API server (versions before 0.8.7) allows remote unauthenticated attack

CVE-2026-109238 CRITICAL
9.2 Oct 12

Server-side request forgery in Crawl4AI (unclecode) versions 0.7.0 through 0.9.3 lets unauthenticated, remote API client

CVE-2026-56266 CRITICAL
9.2 Jun 22

Server-side request forgery in Crawl4AI before 0.8.7 allows unauthenticated remote attackers to coerce the server into f

CVE-2025-28197 CRITICAL
9.1 Apr 18

Crawl4AI <=0.4.247 is vulnerable to SSRF in /crawl4ai/async_dispatcher.py. Rated critical severity (CVSS 9.1), this vuln

CVE-2026-56260 HIGH
8.8 Jul 12

Arbitrary file write in Crawl4AI's Docker API server (versions before 0.8.7) lets remote unauthenticated attackers overw

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy