Skip to main content

nest-admin EUVDEUVD-2026-110842

| CVE-2026-117564 CRITICAL
Use of Hard-coded Cryptographic Key (CWE-321)
2026-10-27 VulnCheck GHSA-mmvv-wwj3-vgj8
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Locate exposed nest-admin API
  2. Delivery
    Retrieve known hardcoded JWT_SECRET from git
  3. Exploit
    Forge JWT claiming admin role
  4. Execution
    Submit token to protected endpoints
  5. Impact
    Obtain 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

nest-admin 0 <1.0.1

Affected Packages

euvd nest_admin fix: 1.0.1

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

Vendor (VulnCheck) PRIMARY 9.3 CRITICAL
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
vuln.today AI 9.8 CRITICAL

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).

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Low
open-source NestJS admin boilerplate, limited real production deployment
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy