Lucene search

K
rubygemsRubySecRUBY:SOLIDUS_AUTH_DEVISE-2021-41274
HistoryNov 17, 2021 - 9:00 p.m.

Authentication Bypass by CSRF Weakness

2021-11-1721:00:00
RubySec
github.com
6
csrf
vulnerability
user account takeover
solidus_auth_devise
protect_from_forgery
version 2.5.4
rails
strategy
exception
quick fix
ghsa-5629-8855-gf4g
rails guides
solidus security
patches
workarounds

CVSS2

6.8

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:N/AC:M/Au:N/C:P/I:P/A:P

CVSS3

9.3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Impact

CSRF vulnerability that allows user account takeover.

All applications using any version of the frontend component of solidus_auth_devise
are affected if protect_from_forgery method is both:

  • Executed whether as:
    • A before_action callback (the default)
    • A prepend_before_action (option prepend: true given) before the
      :load_object hook in Spree::UserController (most likely order to find).
  • Configured to use :null_session or :reset_session strategies
    (:null_session is the default in case the no strategy is given, but
    rails --new generated skeleton use :exception).

That means that applications that haven’t been configured differently from
what it’s generated with Rails aren’t affected.

Patches

Users should promptly update to solidus_auth_devise version 2.5.4.

Workarounds

A couple of options:

  • If possible, change your strategy to :exception:

    class ApplicationController < ActionController::Base
    
       protect_from_forgery with: :exception
    end
    
  • Add the following to config/application.rb to at least run the :exception
    strategy on the affected controller:

    config.after_initialize do
      Spree::UsersController.protect_from_forgery
    with: :exception
    end
    
  • We’ve also released new Solidus versions monkey patching solidus_auth_devise
    with the quick fix. Those versions are v3.1.3, v.3.0.3 & v2.11.12. See
    GHSA-5629-8855-gf4g
    for details.

References

Affected configurations

Vulners
Node
rubysolidus_auth_deviseRange2.5.4
VendorProductVersionCPE
rubysolidus_auth_devise*cpe:2.3:a:ruby:solidus_auth_devise:*:*:*:*:*:*:*:*

CVSS2

6.8

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

PARTIAL

Integrity Impact

PARTIAL

Availability Impact

PARTIAL

AV:N/AC:M/Au:N/C:P/I:P/A:P

CVSS3

9.3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Related for RUBY:SOLIDUS_AUTH_DEVISE-2021-41274