Crawl4AI Docker API Multiple Critical Vulnerabilities (File Write, SSRF, Auth Bypass, XSS, JS Execution)
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.
Vulnerability Intelligence
Public PoCAffected Software
- Vendor
- pip
- Product
- crawl4ai
- Versions
- <= 0.8.6
Timeline
- Disclosed
- June 16, 2026
What is CVE-2026-56266 Crawl4AI Docker API Multiple Critical Vulnerabilities (File Write, SSRF, Auth Bypass, XSS, JS Execution)?
Crawl4AI Docker API Multiple Critical Vulnerabilities (File Write, SSRF, Auth Bypass, XSS, JS Execution) (CVE-2026-56266) maps to the Initial Access and Execution and Credential Access and Discovery and Lateral Movement and Collection tactics — the adversary is trying to get into your network in MITRE ATT&CK.
This page provides production-ready detection logic for Crawl4AI Docker API Multiple Critical Vulnerabilities (File Write, SSRF, Auth Bypass, XSS, JS Execution), covering the data sources and telemetry it touches: CommonSecurityLog, AzureDiagnostics, W3CIISLog. The queries below are rated critical severity at high confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.
MITRE ATT&CK
let crawl4ai_ports = dynamic([11235, 8080, 8000]);
let ssrf_patterns = dynamic(['/crawl', '/screenshot', '/execute_js', '/extract']);
let traversal_patterns = dynamic(['../', '%2e%2e', '%252e%252e', '..%2f', '..%5c']);
union isfuzzy=true
(
CommonSecurityLog
| where TimeGenerated >= ago(24h)
| where DeviceProduct has_any ('nginx', 'apache', 'haproxy') or ApplicationProtocol == 'HTTP'
| where DestinationPort in (crawl4ai_ports)
| where RequestURL has_any (ssrf_patterns)
| extend ThreatIndicator = case(
RequestURL has_any (traversal_patterns), 'PathTraversal',
RequestURL contains 'file://', 'SSRF-FileScheme',
RequestURL contains '169.254.169.254', 'SSRF-MetadataService',
RequestURL contains '127.0.0.1', 'SSRF-Loopback',
RequestURL contains '10.', 'SSRF-PrivateRange',
RequestURL contains '192.168.', 'SSRF-PrivateRange',
RequestURL contains 'execute_js', 'JSInjection',
'SuspiciousRequest'
)
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, RequestURL, ThreatIndicator, RequestMethod
),
(
AzureDiagnostics
| where TimeGenerated >= ago(24h)
| where ResourceType == 'APPLICATIONGATEWAYS'
| where requestUri_s has_any (ssrf_patterns)
| where requestUri_s has_any (traversal_patterns) or httpStatus_d in (200, 201) and requestUri_s has_any (ssrf_patterns)
| extend ThreatIndicator = 'AppGW-Crawl4AI-Exploit'
| project TimeGenerated, clientIP_s, requestUri_s, httpStatus_d, ThreatIndicator
)
| summarize EventCount = count(), FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), UniqueURLs = dcount(RequestURL) by SourceIP, ThreatIndicator
| where EventCount >= 2
| extend RiskScore = case(ThreatIndicator in ('SSRF-MetadataService', 'SSRF-FileScheme', 'PathTraversal'), 95, ThreatIndicator == 'JSInjection', 85, 70)
| sort by RiskScore desc Detects HTTP requests to Crawl4AI Docker API endpoints exhibiting path traversal, SSRF, or JS injection patterns on common Crawl4AI ports. Correlates multiple indicators to reduce noise.
Data Sources
Required Tables
False Positives
- Legitimate web crawling services hitting internal Crawl4AI deployments with unusual URL patterns
- Security scanners (Burp Suite, OWASP ZAP) running authorized assessments against Crawl4AI
- Development/testing environments where developers test path-based features
- Automated integration tests that exercise all Crawl4AI API endpoints including JS execution
Sigma rule & cross-platform mapping
The detection logic for Crawl4AI Docker API Multiple Critical Vulnerabilities (File Write, SSRF, Auth Bypass, XSS, JS Execution) (CVE-2026-56266) above is provided in a vendor-neutral
form so you can deploy it on any SIEM. The same logic is shipped here as native
KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the
following logsource:
logsource:
product: azure Browse the community-maintained Sigma rules for this technique:
Platform-specific guides 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.