Sylius: Channel-based payment method restriction bypass on shop account orders API endpoint
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-863.
Summary
Sylius is an Open Source eCommerce Framework on Symfony. Starting in version 2.0.0 and prior to version 2.0.18, 2.1.15, and 2.2.6, an authorization bypass vulnerability exists in the shop account API. The `PATCH /api/v2/shop/account/orders/{tokenValue}/payments/{paymentId}` endpoint, used by an authenticated shop customer to change the payment method of an order that has been placed but not yet paid (state `STATE_NEW`), does not validate that the chosen payment method is enabled for the order's channel. The equivalent checkout endpoint (`PATCH /api/v2/shop/orders/{tokenValue}/payments/{paymentId}`) correctly rejects out-of-channel payment methods with `HTTP 422`; the account endpoint silently accepts them and returns `HTTP 200`. An authenticated customer can therefore assign any globally enabled payment method to their own placed order, including methods that the store operator has explicitly excluded from that channel. The issue is fixed in versions: 2.0.18, 2.1.15, 2.2.6 and above. As a workaround, decorate the `Sylius\Bundle\ApiBundle\Changer\PaymentMethodChangerInterface` service in the application.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Sylius | Sylius | 2.0.0 to before 2.0.18; 2.1.0 to before 2.1.15; 2.2.0 to before 2.2.6 | 2.0.18, 2.1.15, 2.2.6 | Patch available | CNA |
| — | sylius/sylius (Packagist) | 2.0.0 to before 2.0.18 | 2.0.18 | Patch available | GHSA-6955-hrm5-c4qp |
| — | sylius/sylius (Packagist) | 2.1.0 to before 2.1.15 | 2.1.15 | Patch available | GHSA-6955-hrm5-c4qp |
| — | sylius/sylius (Packagist) | 2.2.0 to before 2.2.6 | 2.2.6 | Patch available | GHSA-6955-hrm5-c4qp |
- Sylius VendorSylius Affected 2.0.0 to before 2.0.18; 2.1.0 to before 2.1.15; 2.2.0 to before 2.2.6 Fixed in 2.0.18, 2.1.15, 2.2.6 Patch available CNA
- sylius/sylius (Packagist) Vendor— Affected 2.0.0 to before 2.0.18 Fixed in 2.0.18 Patch available GHSA-6955-hrm5-c4qp
- sylius/sylius (Packagist) Vendor— Affected 2.1.0 to before 2.1.15 Fixed in 2.1.15 Patch available GHSA-6955-hrm5-c4qp
- sylius/sylius (Packagist) Vendor— Affected 2.2.0 to before 2.2.6 Fixed in 2.2.6 Patch available GHSA-6955-hrm5-c4qp
Remediation
- Fix · CNA Sylius (Sylius) Fixed in 2.0.18, 2.1.15, 2.2.6
- Fix · GHSA-6955-hrm5-c4qp sylius/sylius (Packagist) Fixed in 2.0.18 Advisory →
- Fix · GHSA-6955-hrm5-c4qp sylius/sylius (Packagist) Fixed in 2.1.15 Advisory →
- Fix · GHSA-6955-hrm5-c4qp sylius/sylius (Packagist) Fixed in 2.2.6 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-53638
- 2026-10-03 Alias added: GHSA-6955-hrm5-c4qp
References
More Sylius vulnerabilities
- TI-2026-65010 Sylius 2.x before 2.1.16 and 2.2.9 Payment Amount Overwrite CVSS 4.0HIGH 8.7
- TI-2026-24374 Sylius is Missing Authorization in API v2 Add Item Endpoint CVSS 4.0MEDIUM 6.9
- TI-2022-08557 Insufficient Session Expiration in Sylius CVSS 3.1HIGH 8.2
- TI-2026-48275 Sylius Mollie Plugin: Unauthenticated IDOR leaks order token and customer PII CVSS 3.1MEDIUM 6.5
- TI-2026-24378 Sylius has a DQL Injection via API Order Filters CVSS 3.1MEDIUM 5.3
- TI-2024-19437 Sylius 1.12.13 is vulnerable to Cross Site Scripting (XSS) via the "Province" field in Address Book. CVSS 3.1MEDIUM 6.4
Sources
- CVE-2026-53638 · CVE Program
- CVE-2026-53638 · NVD
- FIRST EPSS
- GHSA-6955-hrm5-c4qp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences