Crawl4AI < 0.8.7 - Hardcoded JWT Signing Key Authentication Bypass
Crawl4AI Docker API server versions before 0.8.7 ship with a hardcoded default JWT signing key ("mysecret") used to sign and verify HS256 authentication tokens. Because the key is identical across every deployment where SECRET_KEY has not been overridden, an unauthenticated attacker can forge a valid Bearer token and use it to access every JWT-protected API endpoint (/md, /html, /screenshot, /pdf, /execute_js, /crawl, /ask). References: https://github.com/unclecode/crawl4ai/security/advisories/GHSA-365w-hqf6-vxfg https://www.vulncheck.com/advisories/crawl4ai-authentication-bypass-via-hardcoded-jwt-signing-key https://github.com/unclecode/crawl4ai https://nvd.nist.gov/vuln/detail/CVE-2026-56265 Remediation: Upgrade Crawl4AI to version 0.8.7 or later, which removes the hardcoded default signing key, rejects known weak secrets, and auto-generates an ephemeral key when JWT authentication is enabled without an explicit SECRET_KEY. As a workaround, set the SECRET_KEY environment variable to a strong random value.
Used 3.2k times · 2 assets checked · domain, subdomain, ipv4