Safeguard
Vulnerability Analysis•

CVE-2026-53753: Remote Code Execution in Crawl4AI

CVE-2026-53753 is a sandbox escape in Crawl4AI before 0.8.7 that allows unauthenticated code execution via /crawl. Upgrade to 0.8.7 and enable JWT auth.

Safeguard Security Team
3 min read

CVE-2026-53753 is a code injection flaw (CWE-94) in Crawl4AI before 0.8.7, scored 9.8 critical. An incomplete expression validator allows a sandbox escape, and the API needs no authentication by default. Upgrade to 0.8.7, enable JWT authentication, and keep the API off public networks.

What's affected

Crawl4AI, installed from pip, in versions up to and including 0.8.6. The patched version is 0.8.7.

The flaw sits in the computed fields feature of extraction schemas, reachable through the /crawl endpoint of the Docker API. The advisory says JWT authentication is disabled by default, so a default deployment accepts unauthenticated requests.

Using Crawl4AI as a Python library with only your own schemas is a lower risk than running the server where others can send requests.

How to check if you're exposed

Read the installed version:

pip show crawl4ai
docker exec <container> pip show crawl4ai

If it is 0.8.6 or lower, you are affected. Then check whether the API server is reachable: which port is published, and whether the container sits behind a reverse proxy that requires a login. Also check whether the CRAWL4AI_API_TOKEN variable is set, since the advisory names it as the way to turn on JWT authentication.

You can also run the free in-browser dependency scan or browse the Gold directory to see where this component shows up in your stack.

What to do now

  1. Find Crawl4AI instances, including containers started for experiments and agent tooling.
  2. Upgrade to 0.8.7 and rebuild your Docker image from the new release.
  3. Set CRAWL4AI_API_TOKEN to enable JWT authentication, as the advisory advises.
  4. Restrict network access to the API so that only trusted callers can reach it.
  5. Treat secrets that were available inside an exposed container as potentially read, and rotate them.
  6. Review container logs for unexpected requests to the crawl endpoint.

Why it matters

The computed fields feature evaluates expressions that come with an extraction schema. The advisory says the validator blocked only attributes whose names start with an underscore, and other Python object attributes remained reachable, which allowed a full escape from the intended sandbox. This is CWE-94, code injection, and CWE-913, improper control of dynamically managed code resources.

Blocklists for dynamic code evaluation tend to fail because a language has more ways to reach an object than the list's author thought of. The fix removes eval() from this path entirely and hardens a related hook sandbox, which is the sounder approach.

The impact stated in the advisory is code execution inside the container with the ability to read and write files and reach secrets. The record does not report exploitation, and the CVE is not in the CISA KEV catalog.

Try it yourself

Click through it at your own pace, or open it full screen.

Quick check

Does JWT authentication fully fix this?

The advisory lists it as a workaround. The patch is the real fix.

Am I affected if I use only the Python library?

The advisory describes the API route. Upgrade anyway, since the library contains the same code.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.