Skip to content

Authentication Bypass by CSRF Weakness

Critical severity GitHub Reviewed Published Nov 17, 2021 in solidusio/solidus_auth_devise • Updated May 4, 2023

Package

bundler solidus_auth_devise (RubyGems)

Affected versions

>= 1.0.0, < 2.5.4

Patched versions

2.5.4

Description

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

Thanks

We'd like to thank vampire000 for reporting this issue.

For more information

If you have any questions or comments about this advisory:

References

Reviewed Nov 17, 2021
Published by the National Vulnerability Database Nov 17, 2021
Published to the GitHub Advisory Database Nov 18, 2021
Last updated May 4, 2023

Severity

Critical
9.3
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

Weaknesses

CVE ID

CVE-2021-41274

GHSA ID

GHSA-xm34-v85h-9pg2
Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.