{"api_version":"1","generated_at":"2026-07-24T18:56:29+00:00","cve":"CVE-2020-26223","urls":{"html":"https://cve.report/CVE-2020-26223","api":"https://cve.report/api/cve/CVE-2020-26223.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2020-26223","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2020-26223"},"summary":{"title":"CVE-2020-26223","description":"Spree is a complete open source e-commerce solution built with Ruby on Rails. In Spree from version 3.7 and before versions 3.7.13, 4.0.5, and 4.1.12, there is an authorization bypass vulnerability. The perpetrator could query the API v2 Order Status endpoint with an empty string passed as an Order token. This is patched in versions 3.7.11, 4.0.4, or 4.1.11 depending on your used Spree version. Users of Spree < 3.7 are not affected.","state":"PUBLIC","assigner":"security-advisories@github.com","published_at":"2020-11-13 18:15:00","updated_at":"2020-11-30 16:18:00"},"problem_types":["CWE-863"],"metrics":[],"references":[{"url":"https://guides.spreecommerce.org/api/v2/storefront#tag/Order-Status","name":"https://guides.spreecommerce.org/api/v2/storefront#tag/Order-Status","refsource":"MISC","tags":["Vendor Advisory"],"title":"Storefront API v2 | Spree Commerce Documentation","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/spree/spree/pull/10573","name":"https://github.com/spree/spree/pull/10573","refsource":"MISC","tags":["Exploit","Patch","Third Party Advisory"],"title":"Fix security issue in order status endpoint by kshalot · Pull Request #10573 · spree/spree · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/spree/spree/security/advisories/GHSA-m2jr-hmc3-qmpr","name":"https://github.com/spree/spree/security/advisories/GHSA-m2jr-hmc3-qmpr","refsource":"CONFIRM","tags":["Third Party Advisory"],"title":"Passing an empty string '' as the token allows to query any complete order without knowing it's token · Advisory · spree/spree · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-26223","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-26223","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2020","cve_id":"26223","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"spreecommerce","cpe5":"spree","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2020","cve_id":"26223","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"spreecommerce","cpe5":"spree","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"security-advisories@github.com","ID":"CVE-2020-26223","STATE":"PUBLIC","TITLE":"Authorization bypass in Spree"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"spree","version":{"version_data":[{"version_value":">= 3.7.0, < 3.7.13"},{"version_value":">= 4.0.0, < 4.0.5"},{"version_value":">= 4.1.0, < 4.1.12"}]}}]},"vendor_name":"spree"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"Spree is a complete open source e-commerce solution built with Ruby on Rails. In Spree from version 3.7 and before versions 3.7.13, 4.0.5, and 4.1.12, there is an authorization bypass vulnerability. The perpetrator could query the API v2 Order Status endpoint with an empty string passed as an Order token. This is patched in versions 3.7.11, 4.0.4, or 4.1.11 depending on your used Spree version. Users of Spree < 3.7 are not affected."}]},"impact":{"cvss":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":7.7,"baseSeverity":"HIGH","confidentialityImpact":"HIGH","integrityImpact":"NONE","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","version":"3.1"}},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"CWE-863: Incorrect Authorization"}]}]},"references":{"reference_data":[{"name":"https://github.com/spree/spree/security/advisories/GHSA-m2jr-hmc3-qmpr","refsource":"CONFIRM","url":"https://github.com/spree/spree/security/advisories/GHSA-m2jr-hmc3-qmpr"},{"name":"https://github.com/spree/spree/pull/10573","refsource":"MISC","url":"https://github.com/spree/spree/pull/10573"},{"name":"https://guides.spreecommerce.org/api/v2/storefront#tag/Order-Status","refsource":"MISC","url":"https://guides.spreecommerce.org/api/v2/storefront#tag/Order-Status"}]},"source":{"advisory":"GHSA-m2jr-hmc3-qmpr","discovery":"UNKNOWN"}},"nvd":{"publishedDate":"2020-11-13 18:15:00","lastModifiedDate":"2020-11-30 16:18:00","problem_types":["CWE-863"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":6.5,"baseSeverity":"MEDIUM"},"exploitabilityScore":2.8,"impactScore":3.6},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:S/C:P/I:N/A:N","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"SINGLE","confidentialityImpact":"PARTIAL","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":4},"severity":"MEDIUM","exploitabilityScore":8,"impactScore":2.9,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:spreecommerce:spree:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7.0","versionEndExcluding":"3.7.13","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:spreecommerce:spree:*:*:*:*:*:*:*:*","versionStartIncluding":"4.0.0","versionEndExcluding":"4.0.5","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:spreecommerce:spree:*:*:*:*:*:*:*:*","versionStartIncluding":"4.1.0","versionEndExcluding":"4.1.12","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2020","CveId":"26223","Ordinal":"187645","Title":"CVE-2020-26223","CVE":"CVE-2020-26223","Year":"2020"},"notes":[{"CveYear":"2020","CveId":"26223","Ordinal":"1","NoteData":"Spree is a complete open source e-commerce solution built with Ruby on Rails. In Spree from version 3.7 and before versions 3.7.13, 4.0.5, and 4.1.12, there is an authorization bypass vulnerability. The perpetrator could query the API v2 Order Status endpoint with an empty string passed as an Order token. This is patched in versions 3.7.11, 4.0.4, or 4.1.11 depending on your used Spree version. Users of Spree < 3.7 are not affected.","Type":"Description","Title":null},{"CveYear":"2020","CveId":"26223","Ordinal":"2","NoteData":"2020-11-13","Type":"Other","Title":"Published"},{"CveYear":"2020","CveId":"26223","Ordinal":"3","NoteData":"2020-11-13","Type":"Other","Title":"Modified"}]}}}