Skip to main content

Crawl4AI CVE-2026-119119

| EUVDEUVD-2026-113186 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-29 VulnCheck GHSA-wh3g-v33g-c47f
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Reach unauthenticated Crawl4AI Docker API
  2. Exploit
    POST CrawlerRunConfig with huge delay_before_return_html/mean_delay/max_range
  3. Execution
    Unclamped fields hold browser pages open and stall rate limiter
  4. Impact
    Page pool exhausted, other crawls blocked or failing

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target must be a Crawl4AI Docker API server (version <= 0.9.4) reachable over the network, with the untrusted /crawl or /crawl/stream endpoints accepting CrawlerRunConfig bodies; the default setup is affected because JWT auth (security.jwt_enabled) is off by default, so any client that can reach the server can submit the request. The specific trigger is sending oversized delay_before_return_html, mean_delay, or max_range values, which _clamp_untrusted() leaves uncapped even though it caps page_timeout and other time fields. Exploitation via /crawl/stream is more severe because it has no wall-clock deadline, whereas /crawl is bounded by limits.wall_clock_s (300s default). Limiting factors: enabling JWT auth and/or keeping the API off untrusted networks prevents it, and upgrading to 0.9.5 (which clamps the three fields to 60s) fully remediates; note the published PoC additionally supplies a bearer token.

Impact

The CVSS 4.0 score of 8.7 is driven entirely by availability impact (VA:H) with the vector AV:N/AC:L/AT:N/PR:N/UI:N and no confidentiality or integrity impact - consistent with the CWE-770 resource-exhaustion denial of service described. Exploitation is attractive from an ease standpoint: network-reachable, low attack complexity, no user interaction, and per the vendor advisory JWT auth is off by default, so in a default deployment no authentication is required. The vuln.today decision label is 'this_week', reported by VulnCheck. There is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active exploitation or a quantified exploitation probability; this is not a confirmed in-the-wild threat. A concrete proof-of-concept (curl requests and a library-level check) is published in the GHSA advisory. CONFLICT TO NOTE: the CVSS vector asserts PR:N (unauthenticated) and the advisory states JWT is disabled by default, yet the PoC itself sends an 'Authorization: Bearer $TOKEN' header - verify whether your deployment requires an API token independently of JWT. Net assessment: a real, easy-to-trigger availability issue worth near-term patching, but the blast radius is bounded to denial of service (no data exposure or code execution) and the affected product's production footprint is limited, so it is a this-week priority rather than an emergency.

Exploit ScenarioDerived

An attacker who can reach a default-configured Crawl4AI Docker API server sends a POST to /crawl or /crawl/stream containing a CrawlerRunConfig body with an enormous delay_before_return_html (e.g. 1000000000), mean_delay, or max_range value. The server accepts these unclamped fields and holds browser pages open or stalls the rate limiter for the duration, and a handful of such requests exhaust the page pool so other users' crawls stall or fail. A working proof-of-concept is published in the GHSA advisory; because /crawl/stream has no wall-clock deadline (unlike /crawl, which is bounded to 300s by default), the stream endpoint can tie up pages indefinitely.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 29, 2026

Denial of service in Crawl4AI's Docker API server (versions <= 0.9.4) lets unauthenticated remote attackers exhaust the browser page pool by submitting oversized delay_before_return_html, mean_delay, or max_range values to /crawl or /crawl/stream. The server's _clamp_untrusted() routine caps fields such as page_timeout but passes these three through unchanged, so a request can hold a page for an arbitrary delay or stall the rate limiter; /crawl/stream is more exposed because it lacks the 300-second wall-clock deadline that bounds /crawl. The CVSS 4.0 score of 8.7 reflects availability-only impact, no CISA KEV entry is reported, and a public proof-of-concept is included in the vendor advisory.

RemediationAI

Vendor-released patch: crawl4ai 0.9.5. Upgrading to 0.9.5 clamps delay_before_return_html, mean_delay and max_range to 60 seconds for untrusted bodies and falls back to field defaults for negative, NaN or non-numeric values. If upgrading immediately is not possible, enable JWT authentication (security.jwt_enabled) and keep the Docker API off untrusted networks; the trade-off is that JWT requires distributing tokens to legitimate clients, and network isolation may reduce availability for intended users. Note that /crawl/stream lacks a wall-clock deadline and is therefore the more severe exposure path, while /crawl is bounded by limits.wall_clock_s (300 seconds by default) but is still affected. Advisory: https://github.com/unclecode/crawl4ai/security/advisories/GHSA-rhjm-7hj7-75fx.

Affected VersionsENISA

Crawl4AI 0 <0.9.5

Affected Packages

euvd crawl4ai fix: 0.9.5

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

Crawl4AI is a Python web-crawling library for LLM pipelines, and its Docker API server accepts CrawlerRunConfig JSON bodies on /crawl and /crawl/stream. In crawl4ai/async_configs.py, _clamp_untrusted() applies caps to page_timeout, wait_for_timeout, body_visibility_timeout and max_scroll_steps when handling Provenance.UNTRUSTED bodies, but UNTRUSTED_FIELD_ALLOWLIST['CrawlerRunConfig'] also admits delay_before_return_html, mean_delay and max_range, which pass through without bounds. AsyncPlaywrightCrawlerStrategy._crawl_web() calls asyncio.sleep(config.delay_before_return_html) while holding a browser page, and AsyncWebCrawler.arun_many() uses mean_delay and max_range as the rate-limiter base delay. This is CWE-770 (Allocation of Resources Without Limits or Throttling): the service allocates page and rate-limiter resources based on untrusted numeric input without constraining them. /crawl is bounded by limits.wall_clock_s (300 seconds by default), whereas /crawl/stream has no such deadline, making stream requests the more severe path. CPE cpe:2.3:a:unclecode:crawl4ai:*:*:*:*:*:*:*:* maps to the pip package crawl4ai.

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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable, low-complexity request against a default config with JWT off (PR:N, AV:N, AC:L); impact is availability-only resource exhaustion, so C:N/I:N/A:H and no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/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
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 29, 2026 - 17:18 EUVD
CVE Published
Oct 29, 2026 - 15:58 cve.org
HIGH 8.7

DescriptionCVE.org

Crawl4AI before 0.9.5 contains a denial of service vulnerability in the Docker API server where _clamp_untrusted() fails to cap the delay_before_return_html, mean_delay, and max_range fields of untrusted CrawlerRunConfig bodies. Unauthenticated attackers can send huge values to /crawl or /crawl/stream to hold browser pages or stall the rate limiter, exhausting the page pool and blocking other crawls.

Technical POC Analysis

CWE-770 (Allocation of Resources Without Limits or Throttling) - a clamp-coverage gap, not a missing check.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Crawl4AI's Docker API server (versions up to 0.9.4) contains an unauthenticated denial-of-service vulnerability that allows attackers to exhaust the browser page pool, causing service outages. The impact is organizational: any team or customer relying on the web crawling service will experience downtime, disrupting data collection and dependent workflows. Leadership should prioritize remediation due to the high availability impact and the absence of a vendor patch.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict access to trusted networks, apply rate limiting, deploy WAF rules to block malicious parameters, and monitor for abnormal page pool exhaustion.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Low
open-source LLM web-crawler; Docker API server mode niche in production
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
High

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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