Spree allows unauthenticated users can access all guest addresses
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-284.
Summary
Spree is an open source e-commerce solution built with Ruby on Rails. A critical IDOR vulnerability exists in Spree Commerce's guest checkout flow that allows any guest user to bind arbitrary guest addresses to their order by manipulating address ID parameters. This enables unauthorized access to other guests' personally identifiable information (PII) including names, addresses and phone numbers. The vulnerability bypasses existing ownership validation checks and affects all guest checkout transactions. This vulnerability is fixed in 4.10.3, 5.0.8, 5.1.10, 5.2.7, and 5.3.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- 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 |
|---|---|---|---|---|---|
| spree | spree | before 4.10.3; 5.0.0 to before 5.0.8; 5.1.0.beta to before 5.1.10; 5.2.0.rc1 to before 5.2.7; 5.3.0.rc2 to before 5.3.2 | 4.10.3, 5.0.8, 5.1.10, 5.2.7, 5.3.2 | Patch available | CNA |
| — | spree_api (RubyGems) | before 4.10.3 | 4.10.3 | Patch available | GHSA-87fh-rc96-6fr6 |
| — | spree_api (RubyGems) | 5.0.0 to before 5.0.8 | 5.0.8 | Patch available | GHSA-87fh-rc96-6fr6 |
| — | spree_api (RubyGems) | 5.1.0 to before 5.1.10 | 5.1.10 | Patch available | GHSA-87fh-rc96-6fr6 |
| — | spree_api (RubyGems) | 5.2.0 to before 5.2.7 | 5.2.7 | Patch available | GHSA-87fh-rc96-6fr6 |
| — | spree_api (RubyGems) | 5.3.0 to before 5.3.2 | 5.3.2 | Patch available | GHSA-87fh-rc96-6fr6 |
- spree Vendorspree Affected before 4.10.3; 5.0.0 to before 5.0.8; 5.1.0.beta to before 5.1.10; 5.2.0.rc1 to before 5.2.7; 5.3.0.rc2 to before 5.3.2 Fixed in 4.10.3, 5.0.8, 5.1.10, 5.2.7, 5.3.2 Patch available CNA
- spree_api (RubyGems) Vendor— Affected before 4.10.3 Fixed in 4.10.3 Patch available GHSA-87fh-rc96-6fr6
- spree_api (RubyGems) Vendor— Affected 5.0.0 to before 5.0.8 Fixed in 5.0.8 Patch available GHSA-87fh-rc96-6fr6
- spree_api (RubyGems) Vendor— Affected 5.1.0 to before 5.1.10 Fixed in 5.1.10 Patch available GHSA-87fh-rc96-6fr6
- spree_api (RubyGems) Vendor— Affected 5.2.0 to before 5.2.7 Fixed in 5.2.7 Patch available GHSA-87fh-rc96-6fr6
- spree_api (RubyGems) Vendor— Affected 5.3.0 to before 5.3.2 Fixed in 5.3.2 Patch available GHSA-87fh-rc96-6fr6
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:spreecommerce:spree:*:*:*:*:*:*:*:* | before 4.10.3; 5.0.0 to before 5.0.8; 5.1.0 to before 5.1.10; 5.2.0 to before 5.2.7; 5.3.0 to before 5.3.2 | Vulnerable | spree |
- cpe:2.3:a:spreecommerce:spree:*:*:*:*:*:*:*:* Versions before 4.10.3; 5.0.0 to before 5.0.8; 5.1.0 to before 5.1.10; 5.2.0 to before 5.2.7; 5.3.0 to before 5.3.2 Vulnerable ·spree
Remediation
- Fix · CNA spree (spree) Fixed in 4.10.3, 5.0.8, 5.1.10, 5.2.7, 5.3.2
- Fix · GHSA-87fh-rc96-6fr6 spree_api (RubyGems) Fixed in 4.10.3 Advisory →
- Fix · GHSA-87fh-rc96-6fr6 spree_api (RubyGems) Fixed in 5.0.8 Advisory →
- Fix · GHSA-87fh-rc96-6fr6 spree_api (RubyGems) Fixed in 5.1.10 Advisory →
- Fix · GHSA-87fh-rc96-6fr6 spree_api (RubyGems) Fixed in 5.2.7 Advisory →
- Fix · GHSA-87fh-rc96-6fr6 spree_api (RubyGems) Fixed in 5.3.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-25758
- 2026-10-03 Alias added: GHSA-87fh-rc96-6fr6
References
Patch 9
- https://github.com/spree/spree/commit/15619618e43b367617ec8d2d4aafc5e54fa7b734
- https://github.com/spree/spree/commit/29282d1565ba4f7bc2bbc47d550e2c0c6d0ae59f
- https://github.com/spree/spree/commit/6650f96356faa0d16c05bcb516f1ffd5641741b8
- https://github.com/spree/spree/commit/902d301ac83fd2047db1b9a3a99545162860f748
- https://github.com/spree/spree/commit/ff7cfcfcfe0c40c60d03317e1d0ee361c6a6b054
- https://github.com/spree/spree/blob/1341623f2ae92685cdbe232885bf5808fc8f9ca8/core/app/models/spree/order/address_book.rb#L16-L38
- https://github.com/spree/spree/blob/1341623f2ae92685cdbe232885bf5808fc8f9ca8/core/app/models/spree/order/checkout.rb#L241-L254
- https://github.com/spree/spree/blob/1341623f2ae92685cdbe232885bf5808fc8f9ca8/core/app/services/spree/checkout/update.rb#L33-L48
- https://github.com/spree/spree/blob/1341623f2ae92685cdbe232885bf5808fc8f9ca8/core/lib/spree/permitted_attributes.rb#L92-L96
More Spree vulnerabilities
- TI-2011-04629 Spreecommerce < 0.50.x API RCE CVSS 4.0CRITICAL 9.3
- TI-2026-18150 Spree API has Unauthenticated IDOR - Guest Address CVSS 3.1HIGH 7.5
- TI-2026-18149 Spree API has Authenticated Insecure Direct Object Reference (IDOR) via Order Modification CVSS 3.1MEDIUM 6.5
- TI-2011-04622 Spreecommerce < 0.60.2 Search Parameter RCE CVSS 4.0CRITICAL 10.0
- TI-2026-20824 Unauthenticated Spree Commerce users can view completed guest orders by Order ID CVSS 4.0HIGH 7.7
- TI-2020-16044 Authorization bypass in Spree CVSS 3.1HIGH 7.7
Sources
- CVE-2026-25758 · CVE Program
- CVE-2026-25758 · NVD
- FIRST EPSS
- GHSA-87fh-rc96-6fr6 · 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