Spree allows unauthenticated users can access all guest addresses
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 4.10.3, 5.0.8, 5.1.10, 5.2.7, 5.3.2
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: partial
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- spree spree
fixed in 4.10.3; From 5.0.0 · fixed in 5.0.8; From 5.1.0.beta · fixed in 5.1.10; From 5.2.0.rc1 · fixed in 5.2.7; From 5.3.0.rc2 · fixed in 5.3.2
- spree_apiRubyGems
fixed in 4.10.3
- spree_apiRubyGems
From 5.0.0 · fixed in 5.0.8
- spree_apiRubyGems
From 5.1.0 · fixed in 5.1.10
- spree_apiRubyGems
From 5.2.0 · fixed in 5.2.7
- spree_apiRubyGems
From 5.3.0 · fixed in 5.3.2
References 10
GitHub · spree/spree
- Advisory GHSA-87fh-rc96-6fr6
- Commit 15619618
- Commit 29282d15
- Commit 6650f963
- Commit 902d301a
- Commit ff7cfcfc
- core/app/models/spree/order/address_book.rb · L16-L38
- core/app/models/spree/order/checkout.rb · L241-L254
- core/app/services/spree/checkout/update.rb · L33-L48
- core/lib/spree/permitted_attributes.rb · L92-L96