GitHub Advisoryadvisory · RubyGems
GHSA-xm34-v85h-9pg2 Authentication Bypass by CSRF Weakness
CRITICAL
Official page ↗
- Aliases
- CVE-2021-41274
- Ecosystem
- RubyGems
- Packages
- solidus_auth_devise
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
- Weaknesses
- CWE-352
- Reviewed
- 2021-11-17
Affected packages
• RubyGems solidus_auth_devise: >= 1.0.0, < 2.5.4 → fixed in 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`:
```ruby
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:
```ruby
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
• CSRF on the Rails guides
• Solidus security
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 solidus_auth_devise or a discussion in solidus
• Email us at [email protected]
• Contact the core team on Slack
Related
Alias · CVE (1)
- CVE-2021-41274 solidus_auth_devise provides authentication services for the Solidus webstore framework, using the Devise gem. vulnerability
Weakness · CWE (1)
- CWE-352 Cross-Site Request Forgery weakness
References
- https://github.com/solidusio/solidus_auth_devise/security/advisories/GHSA-xm34-v85h-9pg2 web
- https://nvd.nist.gov/vuln/detail/CVE-2021-41274 advisory
- https://github.com/solidusio/solidus_auth_devise/commit/731a6645e90ea9fd228f78ec53c6976c048a0555 web
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/solidus_auth_devise/CVE-2021-41274.yml web
- https://github.com/solidusio/solidus_auth_devise package
- https://github.com/solidusio/solidus_auth_devise/releases/tag/v2.5.4 web