Detect Crawl4AI Docker API Multiple Critical Vulnerabilities (File Write, SSRF, Auth Bypass, XSS, JS Execution) in Google Chronicle
Detects exploitation of CVE-2026-56266 affecting Crawl4AI <= 0.8.6 Docker API. The vulnerability bundle includes unauthenticated access (CWE-306), path traversal file write (CWE-22), server-side request forgery (CWE-918), stored/reflected XSS (CWE-79), JavaScript injection/execution (CWE-94), and hardcoded credentials (CWE-798). A public PoC is available. Successful exploitation allows full container compromise, internal network pivoting, and arbitrary file write to the host.
MITRE ATT&CK
YARA-L Detection Query
rule crawl4ai_exploit_attempt {
meta:
author = "df00tech Detection Engineering"
description = "Detects exploitation of CVE-2026-56266 Crawl4AI multiple vulnerabilities"
severity = "CRITICAL"
priority = "HIGH"
reference = "https://github.com/advisories/GHSA-365w-hqf6-vxfg"
version = "1.0"
events:
$e.metadata.event_type = "NETWORK_HTTP"
$e.target.port in (11235, 8080, 8000, 8001)
(
re.regex($e.network.http.request_url, `(?i)/(?:crawl|execute_js|screenshot|extract|batch)`) or
re.regex($e.network.http.request_url, `(?i)(\.\./|%2e%2e|%252e%252e|file://|gopher://|169\.254\.169\.254)`) or
re.regex($e.network.http.request_url, `(?i)(<script|javascript:|onerror=|onload=)`)
)
$ip = $e.principal.ip
match:
$ip over 5m
outcome:
$risk_score = max(
if(re.regex($e.network.http.request_url, `169\.254\.169\.254|file://`), 95,
if(re.regex($e.network.http.request_url, `execute_js|%2e%2e|\.\./`), 85, 70))
)
$threat_type = array_distinct(
if(re.regex($e.network.http.request_url, `(?i)(\.\./|%2e%2e)`), "PathTraversal",
if(re.regex($e.network.http.request_url, `169\.254\.169\.254`), "SSRF-CloudMetadata",
if(re.regex($e.network.http.request_url, `execute_js`), "JSExecution", "Other")))
)
condition:
$e
} Chronicle YARA-L rule detecting HTTP requests matching Crawl4AI exploit patterns within a 5-minute match window, with risk scoring based on threat severity of the observed indicator.
Data Sources
Required Tables
False Positives & Tuning
- Automated crawl jobs submitting legitimate JavaScript-heavy pages to execute_js endpoint
- Internal penetration tests from GCP Cloud Shell or authorized GCP project IPs
- Cloud-native CI pipelines testing Crawl4AI containers in GKE with unusual URL parameters
- Security research or bug bounty activities against development Crawl4AI instances
Other platforms for CVE-2026-56266
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Crawl4AI Unauthenticated API Access Test
Expected signal: HTTP POST to port 11235 /crawl endpoint with 200 response and no Authorization header in request logs
- Test 2Crawl4AI SSRF via Cloud Metadata Endpoint
Expected signal: Outbound HTTP connection from Crawl4AI container to 169.254.169.254:80; logged in container network flow data and potentially in WAF/proxy logs
- Test 3Crawl4AI Path Traversal File Read via Screenshot Endpoint
Expected signal: HTTP POST to /screenshot or /crawl with file:// URL scheme in request body; response may contain file contents if vulnerable
- Test 4Crawl4AI JavaScript Code Injection via execute_js Endpoint
Expected signal: HTTP POST to /execute_js with js_code parameter containing JavaScript; Crawl4AI process spawning Playwright browser subprocess
Unlock Pro Content
Get the full detection package for CVE-2026-56266 including response playbook, investigation guide, and atomic red team tests.