CVE-2026-56831
Received Received - Intake

Negative Discount Bypass in Shopper Admin Panel

Vulnerability report for CVE-2026-56831, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-15

Last updated on: 2026-09-15

Assigner: GitHub, Inc.

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-15
Last Modified
2026-09-15
Generated
2026-09-15
AI Q&A
2026-09-15
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
shopper shopper to 2.9.0 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-20 The product receives input or data, but it does not validate or incorrectly validates that the input has the properties that are required to process the data safely and correctly.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in Shopper, a Headless e-commerce Admin Panel, allows negative fixed-amount discount values to be accepted and processed. Instead of reducing order totals, these negative discounts inflate them because the calculation subtracts the discount from the subtotal. For example, a $10,000 subtotal with a -$5,000 discount results in a $15,000 total. The issue stems from a lack of input validation in discount creation, storage, and calculation stages.

Detection Guidance

Check for negative or zero discount values in the sh_discounts table using SQL queries like: SELECT * FROM sh_discounts WHERE fixed_amount <= 0 OR percentage <= 0. Review admin interface forms for discount inputs to ensure they allow invalid values. Inspect cart calculation logic in vendor/shopper/cart/src/Discounts/DiscountCalculator.php and vendor/shopper/cart/src/Pipelines/Calculate.php for improper handling of negative discounts.

Impact Analysis

This vulnerability can lead to incorrect financial calculations, inflating order totals instead of reducing them. It may cause financial data integrity failures, such as overcharging customers or misreporting revenue. An attacker with administrative access could exploit this to manipulate pricing, though no direct customer-facing exploitation path has been confirmed.

Mitigation Strategies

Upgrade to Shopper version 2.9.0 or later to apply the fix. If upgrading is not immediately possible, implement server-side validation to reject negative or zero discount values and percentages above 100. Add a DiscountObserver to validate values during database writes and a DiscountValidator to check values during cart calculations.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-56831. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart