Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocate exposed nest-admin API
-
DeliveryRetrieve known hardcoded JWT_SECRET from git
-
ExploitForge JWT claiming admin role
-
ExecutionSubmit token to protected endpoints
-
ImpactObtain full administrative access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Key management, no hard-coded keys
|
| Exploitation Conditions | Exploitation requires that the deployment run nest-admin before 1.0.1 while still using the committed default secret (JWT_SECRET/REFRESH_TOKEN_SECRET = admin!@#123) from the shipped .env.production or .env.development - the exact value publicly disclosed in the repository. Given that, an unauthenticated network attacker signs a JWT asserting any user ID or the admin role and JwtStrategy/RbacGuard accept it; no user interaction, credentials, or non-default feature toggles are needed, and the API must simply be network-reachable. The principal LIMITING factor is secret reuse: deployments that already replaced the committed secret with their own independent strong value are not exploitable via the known key. The vendor states that environments which ever ran with the historical default must, after upgrading, rotate both JWT_SECRET and REFRESH_TOKEN_SECRET and reissue all login sessions - updating the code alone does not revoke tokens already forgeable with the old secret. |
| Impact | All severity signals point the same direction: the CVSS 4.0 base vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H, 9.3) describes trivial remote exploitation with full confidentiality, integrity and availability impact, and VulnCheck assigns an 'act_now' priority. The mechanism is confirmed by source evidence - the pre-fix .env.production and .env.development committed JWT_SECRET = admin!@#123 (and an identical REFRESH_TOKEN_SECRET), a textbook CWE-321 hardcoded-key flaw, and JwtStrategy/RbacGuard trust whatever that secret signs. Because the secret is published in the repository's git history, any attacker can forge a valid admin token offline, so the practical barrier to exploitation is effectively zero where the default secret is still in use. Counter-signals to weigh: no EPSS score was provided, this is NOT in CISA KEV, and the input does not flag confirmed working exploit code - so there is no evidence of active, widespread exploitation yet. The tension is that extreme ease-of-exploitation collides with a low real-world deployment footprint: nest-admin is an open-source NestJS admin boilerplate, not mainstream enterprise software, which likely explains any absent EPSS/KEV signal rather than low risk per instance. Net: for any exposed deployment still running the committed secret this is a genuine, drop-everything-and-patch issue; across the internet the aggregate exposure is limited by the product's niche footprint. |
| Exploit ScenarioDerived | An attacker finds an internet-exposed nest-admin instance (version before 1.0.1) and retrieves the publicly committed JWT_SECRET 'admin!@#123' from the project's git history. Using that known secret they mint a JWT asserting the admin role (or any user ID), present it to the API, and JwtStrategy/RbacGuard accept it - granting full administrative access with no credentials, no user interaction, and no need for any exploit tooling beyond a standard JWT signing library. No confirmed working exploit package is cited in the input, but the disclosed secret makes token forgery a one-line operation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Unauthenticated attackers can forge valid administrator JSON Web Tokens against nest-admin before 1.0.1 because the JWT signing secret (and the refresh-token secret) is committed to the repository as the fixed placeholder value 'admin!@#123'. Any deployment still running with the shipped .env.production or .env.development secret is fully compromised: an attacker signs a token asserting any user ID or the admin role, and JwtStrategy and RbacGuard accept it without further checks, yielding complete confidentiality, integrity and availability impact (CVSS 4.0 base 9.3, assessed CVSS 3.1 9.3, CWE-321). No public exploit code has been identified at time of analysis, although the key material itself is publicly readable in the project's Git history; VulnCheck assigns an 'act_now' priority, and the sole limiting factor is whether an operator replaced the committed secret with an independent strong value. The vendor fixed the issue in 1.0.1 and states that any environment that ever ran with the historical default must rotate both secrets and reissue all sessions after upgrading.
RemediationAI
Upgrade to nest-admin 1.0.1 (commit f2cec8cb776cbf113115b33164dac69a46d24097) per https://github.com/buqiyuan/nest-admin/commit/f2cec8cb776cbf113115b33164dac69a46d24097 and the vendor advisory https://www.vulncheck.com/advisories/nest-admin-before-1.0.1-authentication-bypass-via-hardcoded-jwt-secret; 1.0.1 replaces the committed env files with blank .env.production.example / .env.development.example templates and refuses to start when JWT_SECRET or REFRESH_TOKEN_SECRET is missing, shorter than 32 characters, or a known placeholder. Updating the code alone is not sufficient: any environment that ever ran with the historical default must, as part of the upgrade, rotate both JWT_SECRET and REFRESH_TOKEN_SECRET to independent random values of at least 32 characters (for example 'openssl rand -base64 48'), inject them at runtime through env_file or process environment rather than baked images, and reissue all login sessions so tokens signed with the old secret stop being honoured - the trade-off is that every existing user is logged out. The same commit also removes hardcoded SMTP and default database/Redis credentials from the repository, so rotate the exposed SMTP account password and any production datastore passwords that were ever shipped in those files. Operators who cannot upgrade immediately should treat only the secret substitution as an effective control: set a unique strong JWT_SECRET and REFRESH_TOKEN_SECRET and restart, which invalidates all previously issued tokens (session disruption) and removes the forgeable-key path until the patched release is deployed. Restricting network reachability of the API reduces exposure but does not fix instances whose signing key is already public.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
nest-admin is a NestJS-based admin backend that authenticates API callers with JSON Web Tokens. A Passport JwtStrategy verifies each bearer token's signature using the JWT_SECRET environment variable, and RbacGuard then authorises the request from the role and user-ID claims carried inside that token. The root cause is CWE-321 (Use of a Hard-coded Cryptographic Key): the repository shipped real .env.production and .env.development files containing JWT_SECRET = admin!@#123 and REFRESH_TOKEN_SECRET = admin!@#123, so the signing key for every default deployment was public. Because token integrity depends entirely on that shared secret, anyone who reads the file - or the published blob link in the advisory references - can mint arbitrary tokens; no password, no session, and no interaction with the application is needed beyond network reachability of the API. The upstream fix (commit f2cec8cb) deletes the committed env files, replaces them with .env.development.example / .env.production.example templates whose JWT_SECRET and REFRESH_TOKEN_SECRET are blank, adds these paths to .gitignore and .dockerignore so secrets are injected at runtime via env_file or process environment, and enforces at startup that both values are present, at least 32 characters, independent of each other, and not known placeholders - otherwise the process refuses to boot. The same commit also blanks hardcoded SMTP credentials and production database/Redis defaults, and reminds operators to rotate the two secrets and re-issue login state on upgraded instances.
Know when Nest Admin 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
Publicly disclosed hardcoded secret lets an unauthenticated remote attacker forge admin tokens with no interaction (PR:N/AC:L), yielding full app compromise contained to the application (S:U).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
nest-admin before 1.0.1 contains an authentication bypass vulnerability that allows unauthenticated attackers to forge administrator tokens by using a hardcoded JWT_SECRET committed in .env.production. Attackers can sign tokens with the known secret that JwtStrategy and RbacGuard trust, impersonating any user ID or claiming the admin role for full administrative access.
Executive ViewAI
The widely used open-source admin framework nest-admin (versions before 1.0.1) contains a critical authentication bypass due to a hardcoded JWT signing secret, allowing unauthenticated attackers to forge admin tokens and gain full control of any unpatched deployment. This exposes all organizational data, operations, and user trust, and leadership must prioritize immediate remediation to prevent potential breaches.
Apply vendor patch.
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.
EUVD-2026-110842
GHSA-mmvv-wwj3-vgj8
NVD
CVE.org
EPSS
Exploit-DB