logo

Database

Server side template injection In crawl4ai

Description

Crawl4AI is Vulnerable to Remote Code Execution in Docker API via Hooks Parameter A critical remote code execution vulnerability exists in the Crawl4AI Docker API deployment. The /crawl endpoint accepts a hooks parameter containing Python code that is executed using exec(). The __import__ builtin was included in the allowed builtins, allowing attackers to import arbitrary modules and execute system commands.

Attack Vector:

POST /crawl
{
  "urls": ["https://example.com"],
  "hooks": {
    "code": {
      "on_page_context_created": "async def hook(page, context, **kwargs):\n    __import__('os').system('malicious_command')\n    return page"
    }
}...

Impact

An unauthenticated attacker can:

    Execute arbitrary system commands

    Read/write files on the server

    Exfiltrate sensitive data (environment variables, API keys)

    Pivot to internal network services

    Completely compromise the server

Mitigation

    Upgrade to v0.8.0 (recommended)

    If unable to upgrade immediately:

      Disable the Docker API

      Block /crawl endpoint at network level

      Add authentication to the API

Fix Details

    Removed __import__ from allowed_builtins in hook_manager.py

    Hooks disabled by default (CRAWL4AI_HOOKS_ENABLED=false)

    Users must explicitly opt-in to enable hooks

Credits

Discovered by Neo by ProjectDiscovery (https://projectdiscovery.io)

Update Impact

Minimal update. May introduce new vulnerabilities or breaking changes.

Ecosystem
Package
Affected version
Patched versions

Does your application use this vulnerable software?

During the free trial, our tools assess your application, identify vulnerabilities, and provide recommendations for their remediation.