CVE-2026-31824

8.2 HIGH

📋 TL;DR

This TOCTOU race condition vulnerability in Sylius eCommerce Framework allows attackers to bypass promotion and coupon usage limits by sending concurrent order completion requests. Unauthenticated attackers can exploit this to redeem limited-use promotions and coupons unlimited times, causing direct financial loss. All Sylius installations using affected versions are vulnerable.

💻 Affected Systems

Products:
  • Sylius
Versions: All versions before 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
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default Sylius installations using promotions or coupons with usage limits.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Unlimited redemption of all limited-use promotions and coupons leading to significant financial loss, inventory depletion, and business disruption.

🟠

Likely Case

Attackers exploit popular promotions/coupons for repeated discounts, causing measurable financial impact and potential abuse of per-customer limits.

🟢

If Mitigated

Limited impact if promotions have low value caps or monitoring detects abnormal redemption patterns quickly.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only concurrent HTTP requests to the order completion endpoint with the same promotion/coupon.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 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 higher

Vendor Advisory: https://github.com/Sylius/Sylius/security/advisories/GHSA-7mp4-25j8-hp5q

Restart Required: Yes

Instructions:

1. Identify your Sylius version. 2. Upgrade to the patched version for your release line. 3. Clear cache and restart your application server. 4. Test promotion/coupon functionality.

🔧 Temporary Workarounds

Rate Limiting

all

Implement strict rate limiting on /api/v2/shop/orders/{token}/complete endpoint to prevent concurrent requests.

Disable Vulnerable Features

all

Temporarily disable all promotion and coupon usage limits until patching is complete.

🧯 If You Can't Patch

  • Implement application-level locking or database-level atomic operations for promotion/coupon usage counters
  • Deploy WAF rules to detect and block concurrent order completion requests with same promotion/coupon

🔍 How to Verify

Check if Vulnerable:

Check Sylius version via composer show sylius/sylius or app/console sylius:version

Check Version:

composer show sylius/sylius | grep versions

Verify Fix Applied:

Verify version is patched and test promotion/coupon usage limits with concurrent requests

📡 Detection & Monitoring

Log Indicators:

  • Multiple order completions with same promotion/coupon within milliseconds
  • Unusual spike in promotion/coupon redemptions

Network Indicators:

  • Concurrent POST/PATCH requests to order completion endpoint
  • Multiple requests with same promotion/coupon codes

SIEM Query:

source="web_logs" AND (uri="/api/v2/shop/orders/*/complete" OR uri LIKE "/api/v2/shop/orders/%/complete") | stats count by promotion_code, time_interval=1s

🔗 References

📤 Share & Export