Skip to main content

Crawl4AI EUVDEUVD-2026-38567

| CVE-2026-53755 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-06-16 https://github.com/unclecode/crawl4ai GHSA-6qhc-x826-342c
7.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI
7.5 HIGH

Default-unauthenticated network API (PR:N, AV:N, AC:L) yields read-only SSRF exposing internal/metadata data (C:H) with no integrity or availability impact and no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

6
Analysis Updated
Jun 29, 2026 - 16:58 vuln.today
v2 (cvss_changed)
Re-analysis Queued
Jun 29, 2026 - 16:52 vuln.today
cvss_changed
CVSS changed
Jun 29, 2026 - 16:52 NVD
8.6 (HIGH) 7.5 (HIGH)
Source Code Evidence Fetched
Jun 16, 2026 - 23:19 vuln.today
Analysis Generated
Jun 16, 2026 - 23:19 vuln.today
CVE Published
Jun 16, 2026 - 21:02 github-advisory
HIGH 8.6

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 2 pypi packages depend on crawl4ai (2 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.8.9.

DescriptionNVD

Summary

The Docker API server applied its SSRF destination check to the crawl target URL only, not to the proxy address. An unauthenticated request could supply a proxy pointing at an internal IP and route the browser through it, reaching internal services and cloud-metadata endpoints, while using a perfectly valid crawl URL. The Docker API is unauthenticated by default.

Affected paths

/crawl, /crawl/stream, and /crawl/job accept a browser_config (and crawler_config). The following all feed Chromium's egress and were unchecked:

  • browser_config.proxy_config.server
  • browser_config.proxy (deprecated field)
  • crawler_config.proxy_config.server
  • --proxy-server / --proxy-pac-url / --proxy-bypass-list / --host-resolver-rules flags in browser_config.extra_args

Attack

An attacker sends /crawl with a benign, validation-passing URL but a proxy_config.server pointing at an internal IP. Chromium routes all requests through that proxy. For plain-HTTP targets the proxy receives the full request and can return any content, which is then returned verbatim in the crawl result (results[0].html / cleaned_html / markdown). In a real deployment the proxy would be an attacker-controlled server pointing at cloud metadata (e.g. AWS IMDSv1 at 169.254.169.254) to retrieve IAM credential tokens.

Impact

Unauthenticated server-side request forgery to internal services and cloud-metadata endpoints, with the response returned to the attacker.

Fix

Every proxy destination is validated with the same global-routability check used for crawl URLs (reject any resolved address that is not is_global, including IPv6 transition forms) before the browser is constructed; proxy/DNS-redirecting flags are stripped from extra_args. A legitimate public proxy still works. Honors CRAWL4AI_ALLOW_INTERNAL_URLS.

Workarounds

  • Upgrade to the patched version (0.8.9).
  • Enable authentication (CRAWL4AI_API_TOKEN).
  • Restrict the container's outbound network access (egress firewall / no metadata route).

Credits

Geo (geo-chen) - reported the proxy_config.server SSRF with a clear PoC.

AnalysisAI

Unauthenticated server-side request forgery in Crawl4AI's Docker API server (versions < 0.8.9) lets remote attackers reach internal services and cloud-metadata endpoints by supplying a proxy address that bypasses the crawl-URL validation. Because the Docker API is unauthenticated by default and the SSRF check was only applied to the crawl target - not to the proxy destination - an attacker can route Chromium's egress through an internal IP (e.g. AWS IMDSv1 at 169.254.169.254) and read the response verbatim from the crawl result. No public exploit is identified at time of analysis, but the reporter supplied a working PoC and EPSS risk is low (0.29%, 20th percentile).

Technical ContextAI

Crawl4AI is a Python (pip) web-crawling/scraping framework that drives a headless Chromium browser, commonly deployed as a containerized Docker API service feeding LLM/RAG pipelines. The root cause is CWE-918 (Server-Side Request Forgery): the global-routability (is_global) destination check was enforced on the user-supplied crawl URL but not on the separate proxy configuration. Multiple inputs feed Chromium's egress and were unchecked - browser_config.proxy_config.server, the deprecated browser_config.proxy field, crawler_config.proxy_config.server, and the Chromium --proxy-server / --proxy-pac-url / --proxy-bypass-list / --host-resolver-rules flags passed via browser_config.extra_args. By pointing the proxy at an internal address while keeping a benign, validation-passing crawl URL, the browser's traffic is tunneled to attacker-chosen internal endpoints. The affected package is identified by CPE pkg:pip/crawl4ai.

RemediationAI

Vendor-released patch: upgrade to Crawl4AI 0.8.9, which validates every proxy destination with the same global-routability (is_global) check used for crawl URLs - rejecting non-global resolved addresses including IPv6 transition forms - and strips proxy/DNS-redirecting flags (--proxy-server, --proxy-pac-url, --proxy-bypass-list, --host-resolver-rules) from extra_args, while still honoring CRAWL4AI_ALLOW_INTERNAL_URLS for legitimate internal use. If immediate upgrade is not possible, enable authentication by setting CRAWL4AI_API_TOKEN so the Docker API is no longer unauthenticated (trade-off: all API clients must now present the token). Additionally, restrict the container's outbound network access with an egress firewall and remove the cloud-metadata route (e.g. block 169.254.169.254), which prevents the metadata-credential theft scenario but may break legitimate crawls that rely on those destinations. Advisory: https://github.com/unclecode/crawl4ai/security/advisories/GHSA-6qhc-x826-342c.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

CVE-2025-34221 CRITICAL POC
10.0 Sep 29

Vasion Print (formerly PrinterLogic) Virtual Appliance Host prior to version 25.2.169 and Application prior to version 2

CVE-2024-23054 CRITICAL POC
9.8 Feb 05

An issue in Plone Docker Official Image 5.2.13 (5221) open-source software that could allow for remote code execution du

CVE-2025-23211 CRITICAL POC
9.9 Jan 28

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve

Share

EUVD-2026-38567 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy