Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate and place order
-
ExploitIntercept Alipay pay request
-
ExecutionTamper total_amount parameter
-
ImpactComplete checkout at attacker-chosen price
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Business logic errors
|
| Exploitation Conditions | Requires a deployment of macrozheng mall (≤1.0.3) with the Alipay payment integration configured and enabled, and an attacker able to initiate a payment for a valid order - i.e. a customer account with an existing order number (outTradeNo). The attacker must manipulate the total_amount field in the pay/webPay request so the amount sent to Alipay differs from the server-side order amount; vulnerable code trusts aliPayParam.getTotalAmount() instead of the database payAmount. Limiting factors: Alipay must be live (not a demo/sandbox-only install), the attacker needs a legitimate order context to supply a matching outTradeNo, and impact is confined to monetary/order-integrity abuse (no code execution, no data exposure). |
| Impact | This is a payment-amount tampering / business-logic flaw (CWE-840) confirmed by the vendor patch diff: AlipayServiceImpl.pay and webPay previously passed the client-supplied aliPayParam.getTotalAmount() straight into the Alipay bizContent as total_amount, and the fix replaces it with the authoritative payAmount read from the order record in the database. The provided CVSS 4.0 vector (AV:N/AC:L/PR:N/UI:N, VC:N/VI:L/VA:L, score 6.9, E:P) indicates a network-reachable, low-complexity issue with integrity-only impact and a proof-of-concept exploit - not a code-execution or data-breach bug. Signals are consistent but modest: POC availability is confirmed (GitHub issue #998), yet there is NO CISA KEV listing and NO EPSS score in the input, so there is no evidence of widespread automated exploitation - treat this as a targeted financial-abuse risk rather than a mass-exploitation priority. One signal to verify: the input vector asserts PR:N, but initiating an Alipay payment realistically requires an authenticated customer with an existing order (outTradeNo), so the true privilege requirement is likely PR:L - this lowers real-world exposure versus a pure unauthenticated flaw. EPSS data is missing and should be checked before final prioritization. |
| Exploit ScenarioDerived | A registered customer of a mall-based storefront creates a legitimate order, then intercepts or crafts the Alipay payment initiation request and sets total_amount to an arbitrary low value (e.g. 0.01) while keeping the real order number; because the server trusts the client-supplied amount, the payment gateway charges the reduced amount and the order is processed as paid. A public proof-of-concept is available via the project's GitHub issue tracker, factoring in the network attack vector and low complexity of simply altering one request parameter. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Payment-amount tampering in macrozheng mall through version 1.0.3 lets a customer-side attacker override the amount submitted to Alipay: the portal's payment endpoint passes the client-supplied total_amount straight into the Alipay bizContent instead of the order's stored payAmount, so an attacker with a valid order can alter what is charged or recorded. Exploitation requires a live Alipay integration and an authenticated customer account holding a legitimate outTradeNo, and impact is confined to order/payment integrity rather than code execution or data exposure (assessed CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N). Public exploit code and the upstream fix commit are both available, but there is no indication the flaw is being actively exploited (not in CISA KEV).
RemediationAI
Apply the upstream fix commit dcaa93b3150352e5044708d7211b5bed0af4509f from https://github.com/macrozheng/mall/commit/dcaa93b3150352e5044708d7211b5bed0af4509f (or rebuild from a later mall release once one is tagged; no released patched version number is independently confirmed, so treat the commit as the authoritative fix): it makes AlipayServiceImpl read BigDecimal payAmount from the order record returned by the new OmsPortalOrderService.getOrderByOrderSn(outTradeNo) instead of the client-supplied AliPayParam totalAmount, failing closed when the order or amount is missing, and also updates paySuccessByOrderSn - all four files (AlipayServiceImpl.java, OmsPortalOrderService.java, OmsPortalOrderServiceImpl.java) must be ported together for the fix to compile and behave correctly. If immediate upgrade is not possible, add a server-side guard in pay()/webPay() that loads the order by outTradeNo and rejects any request whose totalAmount differs from the stored payAmount before bizContent is populated - this blocks the tampering without touching payment flow semantics, though it duplicates logic the patch already centralizes. As a last resort, disable or gate the Alipay portal endpoints (for example, restrict the payment callback/initiation routes to trusted networks or feature-flag the integration off), accepting the trade-off that legitimate customers cannot complete Alipay checkout. Note that the application-dev.yml returnUrl change in the same commit is development-only and has no security effect; also review the disclosure at https://github.com/macrozheng/mall/issues/998 and https://vuldb.com/vuln/416563 for reproduction details, since publicly available exploit code exists for this flaw.
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; the vulnerable code lives in the mall-portal module at com/macro/mall/portal/service/impl/AlipayServiceImpl.java within the payment endpoint component. The root cause is CWE-840 (Business Logic Errors): both pay() and webPay() built the Alipay request by copying the attacker-controllable AliPayParam object (specifically aliPayParam.getTotalAmount()) into the bizContent map as total_amount, so the amount sent to the Alipay gateway was never reconciled with the authoritative order record. The vendor commit dcaa93b3150352e5044708d7211b5bed0af4509f confirms this: it adds OmsPortalOrderService.getOrderByOrderSn(String orderSn), resolves the OmsOrder by outTradeNo, rejects null order/payAmount via Asserts.fail, and substitutes BigDecimal order.getPayAmount() for the request parameter in both pay() and webPay(); it also refactors paySuccessByOrderSn to delegate to the new lookup. The same commit touches mall-portal/src/main/resources/application-dev.yml (returnUrl changed from localhost:8060 to localhost:5173), which is a development configuration change and not security-relevant. The CPE cpe:2.3:a:macrozheng:mall:*:*:*:*:*:*:*:* reflects a version-agnostic mapping covering the affected 1.0.3 and earlier trees.
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:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:P
Initiating an Alipay payment requires an authenticated customer with a valid order, so PR:L; impact is limited to payment-amount integrity (I:L) with no confidentiality or availability loss.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
2DescriptionCVE.org
A vulnerability was detected in macrozheng mall up to 1.0.3. This vulnerability affects the function AlipayServiceImpl.pay of the file com/macro/mall/portal/service/impl/AlipayServiceImpl.java of the component Payment Endpoint. The manipulation of the argument total_amount results in business logic errors. The attack can be launched remotely. The exploit is now public and may be used. The patch is identified as dcaa93b3150352e5044708d7211b5bed0af4509f. A patch should be applied to remediate this issue.
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-97138
GHSA-wjhm-7w3j-9428
NVD
CVE.org
EPSS
VulDB
Exploit-DB