CVE-2026-31824
TOCTOU Race Condition in Sylius Promotions Enables Unlimited Coupon Redemption
Publication date: 2026-03-10
Last updated on: 2026-03-11
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| sylius | sylius | to 1.9.12 (exc) |
| sylius | sylius | From 1.10.0 (inc) to 1.10.16 (exc) |
| sylius | sylius | From 1.11.0 (inc) to 1.11.17 (exc) |
| sylius | sylius | From 1.12.0 (inc) to 1.12.23 (exc) |
| sylius | sylius | From 1.13.0 (inc) to 1.13.15 (exc) |
| sylius | sylius | From 1.14.0 (inc) to 1.14.18 (exc) |
| sylius | sylius | From 2.0.0 (inc) to 2.0.16 (exc) |
| sylius | sylius | From 2.1.0 (inc) to 2.1.12 (exc) |
| sylius | sylius | From 2.2.0 (inc) to 2.2.3 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-362 | The product contains a concurrent code sequence that requires temporary, exclusive access to a shared resource, but a timing window exists in which the shared resource can be modified by another code sequence operating concurrently. |
| CWE-367 | The product checks the state of a resource before using that resource, but the resource's state can change between the check and the use in a way that invalidates the results of the check. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is a Time-of-Check To Time-of-Use (TOCTOU) race condition in the Sylius eCommerce framework's promotion usage limit enforcement.
The issue occurs because the system checks the usage count of promotions or coupons from an in-memory entity during validation, but the actual increment of usage happens later during order completion without proper database locking or atomic operations.
As a result, multiple concurrent requests can read the same stale usage count and all pass the eligibility check, allowing a limited-use promotion or coupon to be redeemed multiple times.
An attacker can exploit this by creating multiple carts with the same limited-use promotion or coupon and completing them simultaneously, bypassing usage limits without authentication.
How can this vulnerability impact me? :
This vulnerability can lead to direct financial loss because attackers can redeem limited-use promotions or discount coupons an unlimited number of times.
It allows bypassing of global and per-customer usage limits on promotions and coupons, undermining the intended restrictions on discounts.
Since no authentication is required to exploit this, it poses a significant risk to eCommerce businesses using affected versions of Sylius.
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
I don't know
How can this vulnerability be detected on my network or system? Can you suggest some commands?
I don't know
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, upgrade Sylius to one of the fixed versions: 1.9.12, 1.10.16, 1.11.17, 1.12.23, 1.13.15, 1.14.18, 2.0.16, 2.1.12, 2.2.3 or above.
This will address the Time-of-Check To Time-of-Use (TOCTOU) race condition in promotion and coupon usage limit enforcement by ensuring proper locking or atomic operations during usage count increments.