Security Resilience

CVE-2026-22589

Access Control in Spreecommerce Spree ≤ 4.10.2

Public PoCAccess Control
Published
10 January 2026
Modified
22 January 2026
Patch / advisory
CVSS Score v3.1 7.5
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS Score 0.0045 38th percentile
Risk Priority 57 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2026-22589 is a high-severity Authorization Bypass Through User-Controlled Key (CWE-639) vulnerability in Spreecommerce Spree. Its CVSS base score is 7.5 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 38th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to AC-24 (Access Control Decisions) and AC-3 (Access Enforcement) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-22589 is an unauthenticated Insecure Direct Object Reference (IDOR) vulnerability, classified under CWE-639, affecting Spree, an open source e-commerce platform built on Ruby on Rails. The flaw exists in versions prior to 4.10.2, 5.0.7, 5.1.9, and 5.2.5, where attackers can access guest address information without providing valid credentials or session cookies. It carries a CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N), indicating high confidentiality impact with no requirements for privileges, user interaction, or scope changes.

Any unauthenticated attacker with network access can exploit this vulnerability by leveraging the IDOR to directly reference and retrieve sensitive guest address data from the application. Exploitation requires low complexity, as no authentication or special conditions are needed, potentially enabling mass enumeration of customer information in exposed Spree deployments.

The Spree security advisory (GHSA-3ghg-3787-w2xr) and related GitHub commits detail the patch, which resolves the IDOR by enforcing proper authorization checks. Mitigation involves upgrading to Spree versions 4.10.2, 5.0.7, 5.1.9, or 5.2.5, as addressed in commits such as 16067def6de8e0742d55313e83b0fbab6d2fd795, 4c2bd62326fba0d846fd9e4bad2c62433829b3ad, d051925778f24436b62fa8e4a6b842c72ca80a67, and e1cff4605eb15472904602aebaf8f2d04852d6ad.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Spree is an open source e-commerce solution built with Ruby on Rails. Prior to versions 4.10.2, 5.0.7, 5.1.9, and 5.2.5, an Unauthenticated Insecure Direct Object Reference (IDOR) vulnerability was identified that allows an unauthenticated attacker to access guest address information…

more

without supplying valid credentials or session cookies. This issue has been patched in versions 4.10.2, 5.0.7, 5.1.9, and 5.2.5.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1565 Data Manipulation Impact
Adversaries may insert, delete, or manipulate data in order to influence external outcomes or hide activity, thus threatening the integrity of the data.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-25757Same product: Spreecommerce Spree
CVE-2026-22588Same product: Spreecommerce Spree
CVE-2026-25758Same product: Spreecommerce Spree
CVE-2026-74865Shared CWE-639
CVE-2025-65034Shared CWE-639
CVE-2026-111363Shared CWE-639
CVE-2025-0987Shared CWE-639
CVE-2024-10777Shared CWE-639
CVE-2026-18315Shared CWE-639
CVE-2023-45380Shared CWE-639

Affected Assets

spreecommerce
spree
≤ 4.10.2 · 5.0.0 — 5.0.7 · 5.1.0 — 5.1.9

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

Enforcing approved authorizations on every access request structurally stops a user-controlled key from reaching another user's data.

Requiring explicit access-control decisions on each request blocks unauthorized key-driven access.

Least-privilege restrictions limit the scope of data reachable even if a key check is bypassed.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.AA-05 full match
blocks

Enforcing authorization policy and least privilege directly blocks user-controlled key tampering that bypasses access checks.

PR.IR-01 mostly match
blocks

Logical access controls prevent unauthorized data access that results from missing authorization checks on object references.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

removes

A.8.3 mandates that access to information be restricted based on user identity and permissions, directly addressing the missing authorization check that defines CWE-639; when applied, it removes the vulnerability by requiring that such checks be implemented.

blocks

A.5.15 directly requires defining and implementing access control rules (including authorization, need-to-know, role-based restrictions, formal requests, and consistency with classification) that stop one user from reaching another's data via a tampered key; the bounded remainder is dynamic or application-specific authorization logic (cross-referenced to 8.26) that may still allow bypass if those downstream rules are flawed.

finds

Security testing can detect missing authorization checks but does not prevent the weakness in production.

blocks

Managing access rights includes ensuring users can only access their own records and not bypass authorization by altering identifiers.

prevents

Secure coding practices reduce the likelihood of missing authorization checks but do not guarantee their presence at runtime.

References