The perpetrator who previously obtained an old expired user token could use it to access Storefront API v2 endpoints.
Please upgrade to 3.7.11, 4.0.4, or 4.1.11 depending on your used Spree version.
In your project directory create a decorator file app/controllers/spree/api/v2/base_controller_decotatror.rb
with contents:
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)
If you have any questions or comments about this advisory: * Email us at security@spreecommerce.org
{ "nvd_published_at": "2020-10-20T21:15:00Z", "github_reviewed_at": "2020-10-20T20:03:19Z", "severity": "HIGH", "github_reviewed": true, "cwe_ids": [ "CWE-287", "CWE-613" ] }