Case · DiggingBeagle record

Crawl4AI untrusted regular expressions could block the Python service

Attacker-supplied regular expressions in Crawl4AI extraction could consume the Python worker even after request-level timeouts elapsed.

Scope

Affected Crawl4AI Docker <=0.9.4 with untrusted custom extraction, chunking or schema regex controls. Service unresponsiveness reproduced; no code execution or confidential-data extraction shown. Fixed in 0.9.5.

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-j843-8p47-rhxp documents catastrophic backtracking in untrusted extraction expressions and that ordinary page timeout does not interrupt that Python work. 0.9.5 restricts the vulnerable untrusted regex choices. Wider production impact remains unquantified.

Impact basis: Crafted regex patterns could tie up the Python interpreter and disable service responsiveness. No arbitrary code execution or data theft was demonstrated.

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

At a glance

Claims & evidence

CLM-CRAWL4AI-REGEX-THREAD-DOSUntrusted extraction and chunking patterns allowed expensive regex matching that could trap the Python service even after the page-level timeout had elapsed.supported

Basis: reported finding

Link to claim

Implications

A top-level crawler timeout does not necessarily interrupt a blocking pattern evaluator under the Python interpreter lock. The vulnerable computation needs a separate resource bound.

Controls and mitigations

  • Reject attacker-selected regex or run bounded pattern matching in an isolated process with a nonbypassable wall limit.

Unknowns and contradictions

  • The demonstrated effect is service availability loss, not secret disclosure. The vendor restricted untrusted custom regex paths in v0.9.5; other regex-bearing surfaces still require independent audit.

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