Quick answers
- Is CVE-2026-47741 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-47741 being exploited in the wild.
- How severe is CVE-2026-47741?
- Medium severity, with a CVSS score of 5.9, published 29 May 2026.
- Which products and versions are affected?
- shopper/cart (Packagist) ECOSYSTEM:introduced=0,fixed=2.8.0; Shopper Labs Cart < 2.8.0.
- Is there a fix for CVE-2026-47741?
- Yes. shopper/cart (Packagist): upgrade to 2.8.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-47741 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-47741?
- Check whether you run shopper/cart (Packagist) or Shopper Labs Cart at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- shopper/cart (Packagist): upgrade to 2.8.0 or later
composer require shopper/cart:^2.8.0
Technical details
A race condition exists in the `CreateOrderFromCartAction::execute` method because it creates an `Order` record before checking and incrementing the discount's `total_use` counter. Under concurrent load, multiple requests can pass the initial validation and commit orders with discounts applied even after the global `usage_limit` has been reached, as the subsequent increment operation's failure is not checked. Additionally, the `usage_limit_per_user` check was non-functional because it relied on a counter that was never incremented. The vulnerability is fixed in version 2.8.0 by implementing atomic reservation with row-level locking and a compare-and-swap pattern within the database transaction.
Affected products
- Shopper Labs shopper/cart < 2.8.0
Identifiers
- CVE-2026-47741
- GHSA-9rh9-hf3w-9fgg
Timeline
- 2026-05-11: patched: Fixed in version 2.8.0
- 2026-05-11: advisory: GitHub Security Advisory published
- 2026-05-29: disclosed: CVE-2026-47741 published to NVD