Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover exposed Crawl4AI Docker API
-
DeliveryForge JWT with default 'mysecret' key
-
ExploitSend authenticated request to protected endpoint
-
ExecutionBypass token_dep validation
-
PersistInvoke crawl/execute_js/config endpoints as arbitrary user
-
ImpactExfiltrate data or pivot via SSRF
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Credential externalization
MITRE ATT&CK
2 techniques across 2 tactics: Persistence, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires network reach to a Crawl4AI Docker API server running a version <= 0.8.6 where the operator did NOT override the default JWT signing key 'mysecret' at deployment time - the CVSS PR:N rating reflects that no prior credentials are needed, only knowledge of the public default. The primary limiting factor is operator configuration: deployments that supplied a custom signing key via the documented environment variable are not exploitable through this path, and instances bound only to localhost or an internal network are not reachable from the public internet. No user interaction, no special platform, and no non-default feature toggle is required beyond running the Docker API server itself. |
| Impact | The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H (9.3) is consistent with the description - exploitation needs only network reach to the exposed Docker API and forging a token with the known default secret, with full confidentiality, integrity and availability impact on the vulnerable system. Status is 'no public exploit identified at time of analysis' (no KEV listing, no POC referenced in the provided sources), but a working exploit is essentially a five-line jwt.encode() call, so the practical barrier to exploitation is minimal once an exposed instance is found. EPSS and SSVC data were not supplied, so probabilistic exploitation scoring cannot be cross-checked; however, given (a) VulnCheck attribution, (b) the trivial nature of the bug, and (c) Crawl4AI's typical deployment as an internet-facing scraping service, real-world risk should be treated as high for any operator who did not explicitly override the JWT secret. The main limiter is operational: deployments that already replaced the default key during initial setup are not exploitable via this path. |
| Exploit ScenarioDerived | An attacker enumerates internet-exposed Crawl4AI Docker API servers (e.g., via Shodan banner matching on the FastAPI service), then locally runs jwt.encode({'sub':'admin'}, 'mysecret', algorithm='HS256') to forge a bearer token for an arbitrary user. They submit the token to protected endpoints and obtain full crawl, extraction, JavaScript execution, and configuration access - which can be chained with the co-fixed /execute_js and SSRF issues to pivot into internal networks or cloud metadata. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 22, 2026
Authentication bypass in Crawl4AI Docker API server (versions prior to 0.8.7) allows remote unauthenticated attackers to forge valid JWT tokens because the signing key defaults to the hardcoded value 'mysecret' present in the public source code. Anyone aware of the default secret can mint tokens for arbitrary users and obtain full access to protected crawling, extraction, JavaScript execution, and configuration endpoints. No public exploit identified at time of analysis, but the underlying weakness is trivially reproducible from the upstream repository.
RemediationAI
Vendor-released patch: upgrade Crawl4AI to 0.8.7 or later, which replaces the hardcoded default and forces operators to supply a real JWT signing key (see https://github.com/unclecode/crawl4ai/security/advisories/GHSA-365w-hqf6-vxfg and the VulnCheck advisory at https://www.vulncheck.com/advisories/crawl4ai-authentication-bypass-via-hardcoded-jwt-signing-key). If you cannot upgrade immediately, the most effective compensating control is to explicitly set the JWT signing key environment variable to a long, randomly generated value and restart the Docker API server - this neutralizes the hardcoded default but does nothing for the other five Docker API issues fixed in the same release. As additional containment until you upgrade, place the Docker API server behind a reverse proxy that requires its own authentication (e.g., mTLS or HTTP basic auth) and restrict ingress to the API port to trusted CIDRs; the side effect is that legitimate remote clients must be reconfigured to traverse the new auth layer. Rotate any tokens minted before remediation and review server logs for unexpected token subjects.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Crawl4AI is an open-source LLM-friendly web crawler distributed as a Python package (pip/crawl4ai) and shipped with a FastAPI-based Docker API server that uses JWT bearer tokens for authentication. The Docker server's token_dep dependency validates JWTs using a configurable signing key, but the default value in the public source was the literal string 'mysecret', meaning any operator who did not override the secret at deployment time is signing tokens with a key every attacker already knows. This is a textbook CWE-798 (Use of Hard-coded Credentials) failure: the trust boundary of the JWT scheme collapses because the verifier's secret is not actually secret. The GHSA advisory bundles this with five other Docker API issues (path traversal, SSRF, missing auth on monitor endpoints, stored XSS, and arbitrary JS execution via /execute_js), indicating the API surface received a broader security hardening pass in 0.8.7.
Know when Crawl4ai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-reachable Docker API; complexity low because the default secret is public; no prior auth needed (PR:N); forged admin token yields full C/I/A on the server.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Crawl4AI before 0.8.7 contains an authentication bypass vulnerability due to a hardcoded default JWT signing key in the Docker API server. Attackers who know the default key can forge valid authentication tokens for any user, bypassing authentication and gaining full access to protected functionality.
Articles & Coverage 1
Executive ViewAI
Crawl4AI Docker API server versions prior to 0.8.7 contain a critical authentication vulnerability that allows attackers to bypass login requirements and gain full access to data extraction and web crawling capabilities without any credentials. The vulnerability exploits a default authentication key visible in the public source code, enabling anyone to forge valid access tokens immediately. Organizations using affected versions face urgent risk of unauthorized data access, infrastructure misuse, and potential exposure of sensitive information processed through the service.
Apply vendor patch: Crawl4AI 0.8.7 or later. Interim mitigations while upgrading: change JWT key from default value, restrict network access to API server, implement authentication layer at application ingress.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Remote code execution in Crawl4AI Docker API before 0.8.0 via hooks parameter. The /crawl endpoint accepts Python code i
Arbitrary local file disclosure in Crawl4AI's Docker API (versions before 0.8.0) lets unauthenticated remote attackers r
Remote code execution in Crawl4AI's Docker API server (versions prior to 0.9.0) lets unauthenticated attackers run arbit
Arbitrary file write in Crawl4AI (the open-source LLM-friendly web crawler by unclecode) before version 0.9.0 lets a mal
Arbitrary file write in Crawl4AI Docker API server before 0.8.8 lets unauthenticated remote attackers escape the ALLOWED
Arbitrary JavaScript execution in Crawl4AI's Docker API server (versions before 0.8.7) lets remote attackers submit code
Server-side request forgery in Crawl4AI's Docker API server (versions before 0.8.7) allows remote unauthenticated attack
Server-side request forgery in Crawl4AI (unclecode) versions 0.7.0 through 0.9.3 lets unauthenticated, remote API client
Server-side request forgery in Crawl4AI before 0.8.7 allows unauthenticated remote attackers to coerce the server into f
Crawl4AI <=0.4.247 is vulnerable to SSRF in /crawl4ai/async_dispatcher.py. Rated critical severity (CVSS 9.1), this vuln
Arbitrary file write in Crawl4AI's Docker API server (versions before 0.8.7) lets remote unauthenticated attackers overw
Credential exfiltration in Crawl4AI's Docker API server (all versions before 0.8.8) lets remote unauthenticated attacker
EUVD-2026-38170
GHSA-8qrg-7j2f-rf2h
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB