CVE-2026-25758

7.5 HIGH

📋 TL;DR

A critical IDOR vulnerability in Spree Commerce allows guest users to manipulate address ID parameters during checkout, bypassing ownership validation. This enables unauthorized access to other guests' personally identifiable information including names, addresses, and phone numbers. All systems running vulnerable versions of Spree Commerce with guest checkout enabled are affected.

💻 Affected Systems

Products:
  • Spree Commerce
Versions: All versions before 4.10.3, 5.0.8, 5.1.10, 5.2.7, and 5.3.2
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems with guest checkout functionality enabled

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Mass exfiltration of guest PII data leading to identity theft, targeted phishing campaigns, and regulatory compliance violations.

🟠

Likely Case

Unauthorized access to individual guest PII records, potentially leading to privacy violations and targeted attacks against affected individuals.

🟢

If Mitigated

Limited impact with proper input validation and access controls preventing unauthorized address binding.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires guest checkout access but no authentication; simple parameter manipulation needed

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.10.3, 5.0.8, 5.1.10, 5.2.7, or 5.3.2

Vendor Advisory: https://github.com/spree/spree/commit/15619618e43b367617ec8d2d4aafc5e54fa7b734

Restart Required: Yes

Instructions:

1. Identify current Spree version. 2. Upgrade to appropriate patched version (4.10.3, 5.0.8, 5.1.10, 5.2.7, or 5.3.2). 3. Restart application server. 4. Verify fix implementation.

🔧 Temporary Workarounds

Disable Guest Checkout

all

Temporarily disable guest checkout functionality to prevent exploitation

# Configure Spree to require user accounts for checkout

Implement Additional Input Validation

all

Add server-side validation to ensure address IDs belong to current user

# Add custom validation in address binding logic

🧯 If You Can't Patch

  • Implement WAF rules to block suspicious address ID parameter manipulation
  • Enable detailed logging of all address binding attempts and monitor for anomalies

🔍 How to Verify

Check if Vulnerable:

Test if guest checkout allows binding addresses not owned by current user by manipulating address_id parameter

Check Version:

bundle show spree_core

Verify Fix Applied:

Verify that address binding now properly validates ownership and rejects unauthorized address IDs

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed address binding attempts
  • Address ID parameter values outside expected range
  • Guest users accessing multiple different address records

Network Indicators:

  • Unusual patterns in checkout API calls
  • Multiple address ID values in single session

SIEM Query:

source="spree_logs" AND (message="address binding" OR message="checkout") AND (address_id!="current_user_address")

🔗 References

📤 Share & Export