Summary
CVE-2026-90945 is a critical authentication bypass vulnerability in Crawlab, an open-source distributed web crawler management platform, caused by a hard-coded JWT signing secret. Crawlab versions through 0.6.3 use a static HMAC-SHA256 secret that cannot be overridden via configuration or environment variables, allowing unauthenticated attackers to forge valid administrator tokens. Successful exploitation grants full administrative API access and remote code execution across the Crawlab cluster, earning a CVSS v3.1 score of 9.8 (Critical).
Technical details
- Root cause: The JWT service is initialized in
core/user/service_v2.gowith a static, hard-coded secret value ("crawlab") used to sign and verify authentication tokens. Although aSetJwtSecretmethod exists in the codebase, it is never invoked during normal operation, so the default secret is always active. - Trigger conditions: Any network-accessible Crawlab instance running an affected version is exploitable; no authentication or user interaction is required.
- Attack vector: A remote, unauthenticated attacker who knows (or can determine) the built-in administrator account’s identifier can craft a validly-signed JWT using the known secret, since token verification only checks the HMAC signature against this fixed value.
- Impact: Forged administrator tokens grant access to administrative APIs and allow attackers to execute arbitrary code on worker nodes, resulting in full compromise (confidentiality, integrity, and availability impact) of the Crawlab cluster.
Affected software
- Crawlab (crawlab-team/crawlab), all versions through 0.6.3
Severity
- CVSS v3.1 Base Score: 9.8 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - A CVSS v4.0 score of 9.3 (Critical) has also been assigned:
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
Mitigation and recommended actions
- Immediate: As of publication, the upstream GitHub issue tracking this vulnerability does not indicate a fixed release; check the crawlab-team/crawlab repository for an updated version that removes the hard-coded JWT secret and confirm the fix before upgrading.
- If no patch is available:
- Do not expose Crawlab management interfaces or APIs directly to the internet; restrict access to trusted internal networks or via VPN.
- Place the Crawlab instance behind network access controls (firewall rules, allow-lists) limiting who can reach the API.
- Monitor for unexpected administrative API activity or unfamiliar JWTs being used against the instance.
- Where feasible, isolate worker nodes from untrusted networks to limit the blast radius of a compromised administrator token.

