Detect Crawl4AI AST Sandbox Escape via gi_frame.f_back Chain - Pre-Auth RCE in Elastic Security
Detects exploitation of CVE-2026-53753, a critical pre-authentication remote code execution vulnerability in Crawl4AI (<=0.8.6) Docker API. The vulnerability allows attackers to escape Python AST-based sandboxing via generator frame introspection (gi_frame.f_back chain), enabling arbitrary code execution without authentication. CVSS 9.8 critical; public PoC available.
MITRE ATT&CK
Elastic Detection Query
sequence by host.name with maxspan=30s
[network where network.direction == "ingress"
and url.path : ("/execute", "/run", "/crawl", "/extract")
and destination.port in (11235, 8080, 8000)]
[process where process.name in ("python3", "python", "uvicorn", "gunicorn")
and process.command_line : ("*gi_frame*", "*f_back*", "*__globals__*", "*__builtins__*", "*os.system*", "*subprocess*", "*__import__*")] EQL sequence detection correlating inbound HTTP requests to Crawl4AI endpoints with subsequent Python process execution containing AST sandbox escape patterns within a 30-second window.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate automated web crawling workflows that involve dynamic code evaluation
- Python development environments using generator introspection for debugging
- Internal API testing frameworks that send payloads resembling exploit patterns
- Security tooling that tests for frame inspection capabilities
Other platforms for CVE-2026-53753
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 1CVE-2026-53753 Basic Sandbox Escape via gi_frame
Expected signal: HTTP POST to /execute endpoint followed by Python process executing os.system('id') and writing to /tmp/crawl4ai_pwned.txt; child process of uvicorn/gunicorn spawning /bin/sh
- Test 2CVE-2026-53753 Remote Code Execution with Reverse Shell
Expected signal: Outbound TCP connection from Crawl4AI container to attacker IP on port 4444; subprocess.Popen spawning bash with stdin redirected to network socket
- Test 3CVE-2026-53753 Credential Exfiltration from Container Environment
Expected signal: HTTP POST with gi_frame payload followed by Python reading os.environ; response containing environment variable key-value pairs potentially including API_KEY, DATABASE_URL, VAULT_TOKEN
- Test 4CVE-2026-53753 Unauthenticated Version Fingerprinting
Expected signal: Unauthenticated HTTP GET to /health or root endpoint returning Crawl4AI version information without requiring credentials
Unlock Pro Content
Get the full detection package for CVE-2026-53753 including response playbook, investigation guide, and atomic red team tests.