CVE-2026-57573
Analyzed Analyzed - Analysis Complete

SSRF in Crawl4AI Prior to 0.9.0

Vulnerability report for CVE-2026-57573, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-06

Last updated on: 2026-07-07

Assigner: GitHub, Inc.

Description

Crawl4AI is an open-source LLM-friendly web crawler and scraper. Prior to 0.9.0, the Docker API server applied its SSRF destination check on the non-streaming /crawl path but not on the streaming path. handle_stream_crawl_request passed seed URLs straight to the crawler with no destination validation, allowing a remote unauthenticated client to call POST /crawl/stream or POST /crawl with crawler_config.stream=true with a URL pointing at an internal, private, or link-local address; the server fetched it and streamed the response body back. This issue is fixed in version 0.9.0.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-06
Last Modified
2026-07-07
Generated
2026-07-12
AI Q&A
2026-07-07
EPSS Evaluated
2026-07-11
NVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
kidocode crawl4ai to 0.9.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability exists in Crawl4AI, an open-source web crawler and scraper. Before version 0.9.0, the Docker API server performed a Server-Side Request Forgery (SSRF) destination check only on the non-streaming /crawl path, but not on the streaming path. The function handle_stream_crawl_request allowed remote unauthenticated clients to send POST requests to /crawl/stream or /crawl with streaming enabled, passing URLs that pointed to internal, private, or link-local addresses without validation. As a result, the server would fetch and stream the response from these potentially sensitive internal addresses back to the attacker.

Impact Analysis

This vulnerability can allow a remote unauthenticated attacker to perform SSRF attacks by making the server fetch and stream data from internal or private network addresses. This can lead to unauthorized access to internal services or sensitive information that is not normally exposed externally. Since the attacker can cause the server to access internal resources, it may result in information disclosure or further exploitation within the internal network.

Mitigation Strategies

To mitigate this vulnerability, upgrade Crawl4AI to version 0.9.0 or later, where the issue is fixed.

Compliance Impact

The vulnerability CVE-2026-57573 allows unauthenticated attackers to perform Server-Side Request Forgery (SSRF) to internal, private, or link-local addresses, potentially accessing sensitive internal services without privileges or user interaction.

This unauthorized access to internal resources could lead to exposure of sensitive data, which may impact compliance with data protection regulations such as GDPR or HIPAA that require strict controls over access to personal or protected health information.

Mitigations such as upgrading to version 0.9.0, enabling authentication, and restricting outbound network access are advised to reduce the risk and help maintain compliance with these standards.

Detection Guidance

This vulnerability can be detected by monitoring for unauthorized POST requests to the endpoints /crawl/stream or /crawl with the parameter crawler_config.stream=true, especially those targeting internal, private, or link-local IP addresses such as 169.254.169.254.

Network detection can involve inspecting logs or network traffic for suspicious requests that attempt to access internal metadata or private network addresses via these endpoints.

Suggested commands to detect such activity include using tools like curl or netcat to simulate requests, or using network monitoring commands to filter traffic:

  • Use curl to test the vulnerable endpoint: curl -X POST http://<crawl4ai-server>/crawl/stream -d '{"url":"http://169.254.169.254"}' -H 'Content-Type: application/json'
  • Check server access logs for POST requests to /crawl/stream or /crawl with crawler_config.stream=true containing internal IP addresses.
  • Use tcpdump or Wireshark to filter HTTP POST requests to these endpoints and inspect the payload for internal URLs.
  • Example tcpdump command: tcpdump -i any -A 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | grep -E 'POST /crawl/stream|POST /crawl'

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-57573. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart