CVE-2026-94462 json
Spree: Broken Access Control in `PATCH /api/v3/store/carts/:id/associate` (IDOR)
published last mo. modified last mo. also EUVD-2026-84794 , GHSA-4825-p4xm-pcf2
- 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
- spreecommerce spree 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
Is CVE-2026-94462 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.38% chance of exploitation in the next 30 days, higher than 32% of all scored CVEs (FIRST EPSS, 2026-11-11).
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 Intel 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.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.