Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/authenticate storefront account
-
ExploitRequest GET /p/shopCart/expiryProdList
-
ExecutionTrigger operator-precedence flaw in SQL filter
-
ImpactReceive other users' cart metadata
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Operator precedence logic error
|
| Exploitation Conditions | Requires a valid authenticated storefront/customer account (any low-privileged shopper account suffices - self-registration on an open storefront typically provides one) and the ability to reach the API endpoint GET /p/shopCart/expiryProdList (the shopping-cart expired/off-shelf product list). No special non-default configuration, no administrative privilege, and no user interaction are needed; the flaw is in the default getShopCartExpiryItems SQL query logic. Limiting factors: exploitation is bounded to confidentiality of other users' off-shelf cart metadata (product, SKU, quantity, shop, promoter card numbers) - it does not expose credentials, allow modification, or affect availability - and it affects only mall4j deployments at or below version 4.0 that expose the storefront API to the attacker. |
| Impact | This is a medium-severity (CVSS 4.0 base 5.3), confidentiality-only information disclosure issue, and the signals are internally consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N) indicates network-reachable, low-complexity exploitation that requires a low-privileged (authenticated) storefront account and no user interaction, with only low confidentiality impact and no integrity or availability impact - matching the description of an authenticated customer reading other shoppers' off-shelf cart entries. Publicly available exploit code exists (VulnCheck-reported, with a GitHub PoC), which raises practical exploitability for any party already holding a storefront account, but there is NO CISA KEV listing and NO EPSS score was provided in the input, so there is no evidence of active or widespread exploitation and probability of mass exploitation cannot be quantified from available data. SSVC-style framing: exploitation is 'poc' (not active), the impact is partial/low (leaked cart metadata including product, SKU, quantity, shop, and promoter card numbers rather than credentials or full account data), and automatability is plausible given the single unauthenticated-interaction GET request once a session exists. Net: this is a real but modest-priority issue - the PR:L requirement and confidentiality-only, low-value data exposure keep it below a drop-everything priority despite public PoC; prioritize patching for internet-facing mall4j deployments but it is not a high-real-risk emergency. |
| Exploit ScenarioDerived | An attacker registers or already holds an ordinary storefront customer account on a mall4j (≤4.0) site, authenticates, and issues GET /p/shopCart/expiryProdList; due to the SQL operator-precedence flaw in getShopCartExpiryItems the filter fails to scope results to the attacker, returning other users' off-shelf basket entries. A public Python PoC (poc_shopcart_expiry_prodlist.py) exists, so exploitation requires only a valid session and a single crafted request, leaking product, SKU, quantity, shop, and promoter card numbers belonging to other shoppers. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 11, 2026
Authenticated shoppers on mall4j through version 4.0 can read other customers' off-shelf cart entries - product, SKU, quantity, shop and promoter card numbers - by calling GET /p/shopCart/expiryProdList on the storefront API. Exploitation is medium severity (CVSS 4.0 base 5.3, confidentiality-only): it requires only a self-registered low-privileged account, no administrative rights, no user interaction and no non-default configuration, because the flaw sits in the default getShopCartExpiryItems SQL logic. Publicly available exploit code exists; no confirmed active exploitation has been reported and no vendor-released patch has been identified at time of analysis.
RemediationAI
No vendor-released patch identified at time of analysis; only a public exploit POC and source-code references are published, and no fixed version has been confirmed. The definitive fix is to correct the operator precedence in getShopCartExpiryItems in yami-shop-service/src/main/resources/mapper/BasketMapper.xml (lines 41-48) so the requesting user-id predicate is explicitly parenthesised and always applied, then redeploy the API service and verify with a two-account test that account A no longer sees account B's off-shelf cart rows. Interim compensating controls: block or add strict authorization checks for GET /p/shopCart/expiryProdList at the gateway/WAF (trade-off: legitimate shoppers lose the expired/off-shelf product listing feature); disable the corresponding controller mapping in ShopCartController.java if that feature is unused; restrict who can obtain a storefront account (invitation-only or vetted registration), which reduces mass abuse but does not stop misuse by any legitimate account holder; and monitor API logs for enumeration-style requests to /p/shopCart/expiryProdList. Track the VulnCheck advisory at https://www.vulncheck.com/advisories/mall4j-through-4.0-operator-precedence-error-exposes-other-users-cart-items-via-p-shopcart-expiryprodlist and review the published POC at https://github.com/AnkesKasty/cve-request-poc/blob/a7b6d1423555812d8efa26c91c5d0683164b31e5/mall4j/poc_shopcart_expiry_prodlist.py for detection guidance.
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
mall4j (gz-yami) is a Java/Spring Boot e-commerce platform whose persistence layer uses MyBatis mapper XML. The vulnerable method getShopCartExpiryItems in yami-shop-service/src/main/resources/mapper/BasketMapper.xml (lines 41-48) constructs a SQL WHERE clause containing an operator precedence error (CWE-783): a predicate intended to restrict results to the calling user is not correctly grouped with the surrounding AND/OR conditions, so the query returns other shoppers' expired/off-shelf basket rows instead of only the caller's. The endpoint that invokes it, GET /p/shopCart/expiryProdList, is mapped in yami-shop-api/src/main/java/com/yami/shop/api/controller/ShopCartController.java (lines 162-186). The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N matches this: network-reachable, low attack complexity, authenticated (PR:L), low confidentiality impact only, with no integrity or availability effect and no subsequent-system impact. CPE cpe:2.3:a:gz-yami:mall4j:*:*:*:*:*:*:*:* reflects that all releases through 4.0 carry the defect.
Know when Mall4J 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:N/VA:N/SC:N/SI:N/SA:N
Network-reachable endpoint with low complexity but requires a low-privileged authenticated account (PR:L); impact is limited to low confidentiality disclosure of cart metadata, with no integrity or availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
mall4j through 4.0 contains an information disclosure vulnerability that allows authenticated customers to read other shoppers' cart items due to an operator precedence error in the getShopCartExpiryItems SQL filter. Attackers with any storefront account can request GET /p/shopCart/expiryProdList to retrieve off-shelf product basket entries including product, SKU, quantity, shop, and promoter card numbers.
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.
EUVD-2026-96711
GHSA-m4x2-mf8c-9rmw
NVD
CVE.org
EPSS
VulDB
Exploit-DB