GitHub Advisoryadvisory · RubyGems

GHSA-f8cm-364f-q9qh Ensure that doorkeeper_token is valid when authenticating requests in API v2 calls

HIGH Published 2020-10-20 Modified 2021-11-19 Official page ↗
Aliases
CVE-2020-15269
Ecosystem
RubyGems
Packages
spree
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Weaknesses
CWE-287, CWE-613
Reviewed
2020-10-20

Affected packages

• RubyGems spree: < 3.7.11 → fixed in 3.7.11 • RubyGems spree: >= 4.0.0, < 4.0.4 → fixed in 4.0.4 • RubyGems spree: >= 4.1.0, < 4.1.11 → fixed in 4.1.11

Description

Impact The perpetrator who previously obtained an old expired user token could use it to access Storefront API v2 endpoints. Patches Please upgrade to 3.7.11, 4.0.4, or 4.1.11 depending on your used Spree version. Workarounds In your project directory create a decorator file `app/controllers/spree/api/v2/base_controller_decotatror.rb` with contents: ```ruby module Spree module Api module V2 module BaseControllerDecorator private def spree_current_user return nil unless doorkeeper_token return @spree_current_user if @spree_current_user doorkeeper_authorize! @spree_current_user ||= ::Spree.user_class.find_by(id: doorkeeper_token.resource_owner_id) end end end end Spree::Api::V2::BaseController.prepend(Spree::Api::V2::BaseControllerDecorator) ``` For more information If you have any questions or comments about this advisory: • Email us at [email protected]

Related

Weakness · not in database (1)

Alias · CVE (1)

  • CVE-2020-15269 In Spree before versions 3.7.11, 4.0.4, or 4.1.11, expired user tokens could be used to access Storefront API v2 endpoints. vulnerability

Weakness · CWE (1)

  • CWE-287 Improper Authentication weakness

References