CVE-2021-41275 json
Authentication Bypass by CSRF Weakness
published 2021-11-17 4 y ago modified 2026-07-08 4 mo ago also GHSA-26xx-m4q2-xhq8 , EUVD-2021-2276
- cvss
- 9.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 51%
- public exploits
- 0
- none known
Summary
spree_auth_devise is an open source library which provides authentication and authorization services for use with the Spree storefront framework by using an underlying Devise authentication framework. In affected versions spree_auth_devise is subject to a CSRF vulnerability that allows user account takeover. All applications using any version of the frontend component of spree_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). Users are advised to update their spree_auth_devise gem. For users unable to update it may be possible to change your strategy to :exception. Please see the linked GHSA for more workaround details. ### Impact CSRF vulnerability that allows user account takeover. All applications using any version of the frontend component of `spree_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. Thanks @waiting-for-dev for reporting and providing a patch �� ### Patches Spree 4.3 users should update to spree_auth_devise 4.4.1 Spree 4.2 users should update to spree_auth_devise 4.2.1 ### Workarounds 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 ``` ### References https://github.com/solidusio/solidus_auth_devise/security/advisories/GHSA-xm34-v85h-9pg2
Patch / fix
- rubygems spree_auth_devise 4.0.1, 4.1.1, 4.2.1, 4.4.1
- spreecommerce spree_auth_devise 4.4.1
Exploit prediction
0.65% chance of exploitation in the next 30 days, higher than 51% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
| NVD | 3.1 | 8.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 6.8 | AV:N/AC:M/Au:N/C:P/I:P/A:P |
| GitHub | 3.1 | 9.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | spree_auth_devise | >=4.3.0, <4.4.1 >=4.2.0, <4.2.1 >=4.1.0, <4.1.1 <4.0.1 |
4.4.1 4.2.1 4.1.1 4.0.1 |
Affected products
- spree spree_auth_devise
Classification
- Weakness
-
- CWE-352 Cross-Site Request Forgery
References
-
github.com
/spree/spree_auth_devise/commit/adf6ed4cd94d66091776b5febd4ff3767362de63
web, patch, third-party-advisory
-
github.com
/spree/spree_auth_devise/security/advisories/GHSA-26xx-m4q2-xhq8
web, third-party-advisory
-
github.com
/solidusio/solidus_auth_devise/security/advisories/GHSA-xm34-v85h-9pg2
web
-
github.com
/spree/spree_auth_devise/security/advisories/GHSA-6mqr-q86q-6gwr
web
-
github.com
/spree/spree_auth_devise/security/advisories/GHSA-8xfw-5q82-3652
web
-
github.com
/spree/spree_auth_devise/security/advisories/GHSA-gpqc-4pp7-5954
web
-
nvd.nist.gov
/vuln/detail/CVE-2021-41275
advisory
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/spree_auth_devise/CVE-2021-41275.yml
web
-
github.com
/spree/spree_auth_devise
package
Sources
- CVE List CVE-2021-41275
- GitHub Advisory GHSA-26xx-m4q2-xhq8
- NVD CVE-2021-41275
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.