Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid low-privilege JWT
-
DeliveryCall /admin/refreshToken with token
-
ExploitvalidateToken skips isEnabled check
-
ExecutionSession persists past expiration
-
ImpactRetain unauthorized authenticated access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Requires the attacker to already possess a valid low-privilege JWT for the macrozheng mall application (PR:L) - it is NOT exploitable by fully unauthenticated attackers. The concrete weakness is that pre-patch JwtTokenUtil.validateToken checked only username match and token non-expiry, omitting userDetails.isEnabled(); therefore a token belonging to a disabled/deactivated account still validated and could be refreshed via the refreshToken flow, prolonging a session that should have been terminated. Limiting factors: valid authenticated token needed, impact confined to session longevity/retained access (no scope change, low C/I/A), and the affected code path is the JWT refresh/validation logic of mall ≤1.0.3. |
| Impact | This is a medium-severity, low-urgency issue. The vendor-provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, score 5.3) indicates a network-reachable, low-complexity flaw but explicitly requires low-level privileges (PR:L) - the attacker must already hold a valid application token, which sharply limits mass exploitation. Impact is uniformly low (VC:L/VI:L/VA:L) and there is no scope change, consistent with CWE-613 (Insufficient Session Expiration): the pre-patch validateToken() failed to check userDetails.isEnabled(), so a disabled/deactivated account's token still validated and could be refreshed. A public exploit exists (GitHub issue #997) and the E:P (Proof-of-Concept) exploit-maturity flag matches that, but there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active or widespread exploitation. Net: a legitimate but modest-priority defect - authenticated-only, low-impact session-lifecycle weakness rather than a high-real-risk remote takeover. EPSS/KEV signals are absent and should be checked before deprioritizing entirely. |
| Exploit ScenarioDerived | An attacker who already holds a valid low-privilege JWT (e.g. an account that was subsequently disabled by an administrator) calls the token-refresh endpoint; because validateToken did not verify the account was still enabled, the token is accepted and the session persists beyond when it should have expired. A proof-of-concept is publicly published in GitHub issue #997, and the network vector with low attack complexity makes the request trivial to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Insufficient session expiration in MacroZheng Mall through 1.0.3 allows an attacker who already holds a valid low-privilege JWT for a disabled or deactivated account to keep that session alive by repeatedly calling the /admin/refreshToken endpoint, because JwtTokenUtil.validateToken verified only the username match and token non-expiry and omitted the userDetails.isEnabled() check. The issue is rated 5.3 (CVSS 4.0 vector with PR:L, E:P) with low confidentiality, integrity and availability impact and no scope change, and publicly available exploit code exists, although there is no confirmation of active exploitation. Effectively, the defect prevents account deactivation from taking effect on the token-refresh path, letting a terminated user retain access until the token is otherwise invalidated.
RemediationAI
Apply the upstream fix commit 9bfc2fd2c4aaa4ac519e9152e65d673a5380de1a (https://github.com/macrozheng/mall/commit/9bfc2fd2c4aaa4ac519e9152e65d673a5380de1a), which appends userDetails.isEnabled() to JwtTokenUtil.validateToken; local guidance from the vendor and VulDB (https://vuldb.com/vuln/416564) indicates a patch is available, but because the fix is distributed as a source commit rather than a tagged release, an updated artifact version has not been independently confirmed - build from the patched branch or cherry-pick the change into your fork, since no exact released version number can be cited. Where patching is not yet possible, compensating controls are: shorten JWT access/refresh token lifetimes (e.g., reduce the configured expiration) so a stale token for a deactivated account expires quickly, at the cost of more frequent re-authentication for legitimate users; implement server-side token revocation or a deny-list keyed on user ID so that disabling an account invalidates outstanding tokens before the next refresh - this requires a persistent store and adds a lookup to every authenticated request; have the refresh endpoint re-load the account and reject tokens whose user is not enabled or deleted (a small custom filter ahead of JwtAuthenticationTokenFilter), noting that this duplicates part of the upstream patch; and restrict or rate-limit /admin/refreshToken at the gateway or WAF, which reduces abuse volume but does not correct the underlying logic flaw and may break legitimate mobile clients that refresh aggressively. Because the exploit is publicly available, prioritize the code fix over long-term reliance on these workarounds.
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
MacroZheng Mall is a Java/Spring Boot e-commerce reference application whose stateless authentication uses JSON Web Tokens issued and validated by the mall-security module (com.macro.mall.security.util.JwtTokenUtil), with a JwtAuthenticationTokenFilter intercepting requests. CWE-613 (Insufficient Session Expiration) is the root-cause class: the pre-patch validateToken implementation combined a username comparison against the loaded UserDetails with an isTokenExpired check, but never consulted userDetails.isEnabled(), so a JWT issued to an account that was subsequently disabled still passed validation and could be exchanged through the refreshToken flow for a freshly minted, longer-lived token. Because the token is self-contained and the server does not re-check the account's enabled flag at refresh time, account deactivation at the database level has no effect on existing sessions. The vendor fix, commit 9bfc2fd2c4aaa4ac519e9152e65d673a5380de1a, adds the missing && userDetails.isEnabled() condition to the validation predicate (and also touches registration verification-code logic in UmsMemberServiceImpl), restoring the intended behavior that disabled accounts cannot pass authentication or refresh. CPE data (cpe:2.3:a:macrozheng:mall:*:*:*:*:*:*:*:*) indicates all releases up to and including 1.0.3 are affected; the vulnerability requires an already-authenticated principal (PR:L in both the published CVSS 4.0 vector and the independent CVSS 3.1 assessment), so it is not reachable by a fully unauthenticated remote attacker.
Know when Mall 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:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Network-reachable refresh endpoint (AV:N/AC:L) but requires a valid low-privilege token (PR:L); impact limited to retained session access (C:L/I:L), no availability effect.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A flaw has been found in macrozheng mall up to 1.0.3. This issue affects the function JwtTokenUtil.refreshHeadToken of the file /admin/refreshToken of the component JwtAuthenticationTokenFilter. This manipulation of the argument token causes session expiration. The attack may be initiated remotely. The exploit has been published and may be used. Patch name: 9bfc2fd2c4aaa4ac519e9152e65d673a5380de1a. To fix this issue, it is recommended to deploy a 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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Related Vulnerabilities in macrozheng mall Authentication and Logic Flaws
View all 2macrozheng mall e-commerce platform v1.0.3 has an authentication vulnerability in password reset enabling unauthorized a
Weak password recovery in macrozheng mall (commit 0504e86) exposes the /sso/getAuthCode endpoint of the mall-portal modu
A vulnerability classified as critical was found in Weitong Mall 1.0.0. Rated medium severity (CVSS 6.9), this vulnerabi
A vulnerability classified as critical has been found in Weitong Mall 1.0.0. Rated medium severity (CVSS 6.9), this vuln
A vulnerability was found in macrozheng mall up to 1.0.3. Rated medium severity (CVSS 6.3), this vulnerability is remote
A security flaw has been discovered in macrozheng mall-swarm and mall up to 1.0.3. Rated medium severity (CVSS 5.3), thi
A vulnerability was detected in macrozheng mall-swarm and mall up to 1.0.3. Rated medium severity (CVSS 5.3), this vulne
A security vulnerability has been detected in macrozheng mall-swarm and mall up to 1.0.3. Rated medium severity (CVSS 5.
A weakness has been identified in macrozheng mall-swarm and mall up to 1.0.3. Rated medium severity (CVSS 5.3), this vul
Improper authorization in macrozheng mall up to version 1.0.3 allows authenticated remote attackers to modify member add
A vulnerability was detected in macrozheng mall up to 1.0.3. Rated medium severity (CVSS 5.3), this vulnerability is rem
EUVD-2026-97139
GHSA-6wph-fh59-8cv4
NVD
CVE.org
EPSS
VulDB
Exploit-DB