GHSA-xm34-v85h-9pg2

Suggest an improvement
Source
https://github.com/advisories/GHSA-xm34-v85h-9pg2
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/11/GHSA-xm34-v85h-9pg2/GHSA-xm34-v85h-9pg2.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-xm34-v85h-9pg2
Aliases
Published
2021-11-18T20:09:32Z
Modified
2023-11-08T04:06:58.287053Z
Severity
  • 9.3 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N CVSS Calculator
Summary
Authentication Bypass by CSRF Weakness
Details

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: * Open an issue in solidusauthdevise or a discussion in solidus * Email us at security@solidus.io * Contact the core team on Slack

References

Affected packages

RubyGems / solidus_auth_devise

Package

Name
solidus_auth_devise
Purl
pkg:gem/solidus_auth_devise

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.0.0
Fixed
2.5.4

Affected versions

1.*

1.0.0
1.1.0
1.2.0
1.2.1
1.2.2
1.2.3
1.3.0
1.4.0
1.5.0
1.6.0
1.6.1
1.6.2
1.6.3
1.6.4

2.*

2.0.0
2.1.0
2.2.0
2.3.0
2.4.0
2.5.0
2.5.1
2.5.2
2.5.3