Skip to main content
VulnerabilityPublished

CVE-2026-56831: Shopper · Negative discount values accepted and propagated through order calculation pipeline

Affects shopper/frameworkSource GCVE Database

0
Authoritative record:CVE-2026-56831· Medium 6.5

Not known to be exploited · CVSS 6.5 Medium : upgrade to 2.9.0 when convenient.

Data as of 26 Oct 2026, 17:16 UTC

CVSS 3.1 base score
6.5Medium
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.4% chance of exploitation in 30 days – higher than 37% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 2.9.0
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

Exploitation evidence

t = 0 is the CVE’s publication on cve.org

  1. Disclosed: evidence found.

    CVE published 15 Sep 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: evidence found.

    CISA SSVC: proof of concept public

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

Timeline

  1. CVE ID reserved

    by GitHub, Inc.

    , 84 days before disclosure

  2. CVE published

    on cve.org

    , t = 0

  3. CISA SSVC assessment

    proof of concept public

    , 21 hours after disclosure

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), CISA SSVC, the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.

What to do

Upgrade shopper/framework to 2.9.0.

Affected software

ProductAffectedFixed in
Packagistshopper/frameworkAffected
  • <2.9.0
Fixed in
  • 2.9.0

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

A patch is available to address this vulnerability. The vendor recommends implementing server-side validation to enforce that fixed amount discounts have values greater than zero and percentage discounts have values between 0 and 100 before persistence and before entering the calculation pipeline. Additionally, existing discount records should be validated to prevent malformed data from influencing pricing logic. Users should apply the official fix as soon as possible.

Description

Shopper is a Headless e-commerce Admin Panel. Prior to 2.9.0, the /cpanel/discounts administrative interface accepts negative fixed_amount discount values, persists them in sh_discounts, and passes them through vendor/shopper/cart/src/Discounts/DiscountCalculator.php and vendor/shopper/cart/src/Pipelines/Calculate.php without enforcing a positive-value invariant. Because the calculation subtracts discountTotal from the subtotal, a negative discount increases the resulting order total instead of reducing it. Malformed discount records can therefore cause incorrect pricing and financial data integrity failures, although the advisory does not establish a customer-facing exploitation path. This issue is fixed in version 2.9.0.

References

Community reviews

Loading reviews…