CVE-2026-94462 json
Spree: Broken Access Control in `PATCH /api/v3/store/carts/:id/associate` (IDOR)
published 2026-09-22 47 d ago modified 2026-09-23 46 d ago also GHSA-4825-p4xm-pcf2 , EUVD-2026-84794
- cvss
- 7.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 32%
- public exploits
- 0
- none known
Summary
Spree is an open source e-commerce solution built with Ruby on Rails. From 5.4.0 until 5.4.4 and 5.5.4, PATCH /api/v3/store/carts/:id/associate in Spree::Api::V3::Store::CartsController#associate uses find_cart_for_association to locate a cart by prefixed_id but does not require a cart token or otherwise verify possession of the selected guest cart. An authenticated customer can derive reversible prefixed cart IDs, associate an eligible guest cart with the attacker's account, and receive billing and shipping address data from the cart. Exploitation requires a guest cart with address data on a store that does not require login for checkout, and reassignment can also disrupt the guest's in-progress cart. This issue is fixed in versions 5.4.4 and 5.5.4.
Patch / fix
- rubygems spree_api 5.4.4, 5.5.4
- github.com/spree/spree@8834230 commit
- github.com/spree/spree@af0d1a2 commit
- github.com/spree/spree#14314 pull request
- github.com/spree/spree/releases/tag/v5.4.4 release
- github.com/spree/spree/releases/tag/v5.5.4 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 47 d ago
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 32% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/spree/spree/security/advisories/GHSA-4825-p4xm-pcf2 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
| GitHub | 3.1 | 7.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | spree_api | >=5.4.0, <5.4.4 >=5.5.0, <5.5.4 |
5.4.4 5.5.4 |
Affected products
- spree spree
Classification
- Weakness
-
- CWE-639 Authorization Bypass Through User-Controlled Key
References
-
github.com
/spree/spree/pull/14314
web
-
github.com
/spree/spree/commit/8834230a1f47bb5988f23f45dbd162776cf592bd
web
-
github.com
/spree/spree/commit/af0d1a2d582a60d179de65b7d3ea024cb26426a8
web
-
github.com
/spree/spree/security/advisories/GHSA-4825-p4xm-pcf2
exploit, web
-
github.com
/spree/spree/releases/tag/v5.4.4
web
-
github.com
/spree/spree/releases/tag/v5.5.4
web
-
github.com
/spree/spree
package
Sources
- CVE List CVE-2026-94462
- GitHub Advisory GHSA-4825-p4xm-pcf2
- NVD CVE-2026-94462
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.