Case · DiggingBeagle record

Crawl4AI accepted unbounded delay parameters and occupied browser capacity

Crawl4AI applied bounds to page timeout but accepted independent delay settings large enough to exhaust a browser pool.

Scope

Affected Crawl4AI API paths before 0.9.5 including long-lived crawl streams; delay parameters could be extraordinarily large or invalid. Denial of service demonstrated, not data theft.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Impact
Band 1 of 4
Evidence
Grade B
Remediation
fixed reported
AI role
AGAINST AI
Basis and provenance

GHSA-rhjm-7hj7-75fx shows that page_timeout clamps did not bound separate delay values, particularly for stream requests; patched 0.9.5 adds limits and invalid-value rejection. A global production outage or victim count is not evidenced.

Impact basis: Unbounded attacker-chosen delays monopolized crawler/browser capacity in the tested API path. This is an availability effect, not remote execution or information disclosure.

Assessed Oct 19, 2026 using diggingbeagle.assessment/1.

At a glance

Claims & evidence

CLM-CRAWL4AI-DELAY-RESOURCE-DOSSeveral Crawl4AI delay settings were accepted without the limits applied to ordinary page timeout, allowing requests to reserve browser resources for extremely long durations.supported

Basis: reported finding

Link to claim

Implications

Request timeouts bounded page navigation but not caller-selected delay stages, so one apparently ordinary crawl could occupy resources without a corresponding page-load violation.

Controls and mitigations

  • Clamp all request-controlled timing fields and enforce a process-level resource lease covering streaming and non-streaming work.

Unknowns and contradictions

  • This is a bounded availability finding, not evidence of arbitrary instruction execution or private data access. The patched release enforces numeric validation and time ceilings.

Sources and citation

Material revision history

  1. Oct 19, 2026 · Published version · first publication · revision 174
  2. Oct 19, 2026 · Canonical change recorded · material revision · revision 175Public fields changed: assessment_profile