Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Publicly-known default secret enables unauthenticated remote token forgery (AV:N/AC:L/PR:N/UI:N); full admin access yields high confidentiality and integrity impact, no direct availability loss.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
Lifecycle Timeline
4DescriptionCVE.org
Outstatic CMS <= 2.1.9 contains a hardcoded JWT signing secret. When the OST_TOKEN_SECRET environment variable is not set, the application falls back to the default value which is publicly visible in the source code repository. An unauthenticated remote attacker can exploit this by forging JWT session tokens with arbitrary user data and full administrative permissions.
AnalysisAI
Authentication bypass in Outstatic CMS versions 2.1.9 and earlier lets an unauthenticated remote attacker forge valid administrative session tokens because the application ships a hardcoded JWT signing secret that is used whenever the OST_TOKEN_SECRET environment variable is left unset. Since the fallback secret is published in the project's public source repository, any attacker can self-sign a JWT granting arbitrary identity and full admin permissions with no credentials. There is no public exploit identified at time of analysis, but the technique is trivial and requires only the publicly-visible secret.
Technical ContextAI
Outstatic is an open-source, Git-based headless/static CMS built for Next.js that stores content in a repository and manages editor access through JWT-based session tokens. The root cause is CWE-798 (Use of Hard-coded Credentials): the token-signing key is defined as a default constant in packages/outstatic/src/utils/constants.ts and is only overridden when the OST_TOKEN_SECRET environment variable is supplied. Because JWT integrity depends entirely on the secrecy of the HMAC signing key, a publicly-known key collapses the security model - anyone can produce a signature that the server accepts as authentic, so the token's claims (user identity, roles/permissions) can be set to anything the attacker chooses.
RemediationAI
Immediately set a strong, unique, high-entropy value for the OST_TOKEN_SECRET environment variable in every deployment so the application stops falling back to the hardcoded default; this is the fastest effective control and forces existing forged tokens to become invalid. Rotating the secret also invalidates all legitimate outstanding sessions, so operators should expect users to re-authenticate. Upgrade to a fixed release once available - no vendor-released patched version is independently confirmed from the provided data, so no vendor-released patch identified at time of analysis, and administrators should track the upstream repository (https://github.com/avitorio/outstatic) and the constants.ts source (https://github.com/avitorio/outstatic/blob/canary/packages/outstatic/src/utils/constants.ts) for a release that removes the insecure default. As a compensating control until patched and configured, restrict network access to the /outstatic admin interface (e.g., IP allow-listing or an authenticating reverse proxy) to reduce exposure to unauthenticated token forgery, accepting that this narrows legitimate remote editor access. Consult https://nvd.nist.gov/vuln/detail/CVE-2026-52539 for authoritative details.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same weakness CWE-798 – Use of Hard-coded Credentials
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51327
GHSA-59rr-38mm-f3g9