CSRF forgery protection bypass for Spree::OrdersController#populate
Description
solidus_frontend is the cart and storefront for the Solidus e-commerce project. Versions of solidus_frontend prior to 3.1.5, 3.0.5, and 2.11.14 contain a cross-site request forgery (CSRF) vulnerability that allows a malicious site to add an item to the user's cart without their knowledge. Versions 3.1.5, 3.0.5, and 2.11.14 contain a patch for this issue. The patch adds CSRF token verification to the "Add to cart" action. Adding forgery protection to a form that missed it can have some side effects. Other CSRF protection strategies as well as a workaround involving modifcation to config/application.rb` are available. More details on these mitigations are available in the GitHub Security Advisory.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
solidus_frontendRubyGems | < 2.11.14 | 2.11.14 |
solidus_frontendRubyGems | >= 3.0.0, < 3.0.5 | 3.0.5 |
solidus_frontendRubyGems | >= 3.1.0, < 3.1.5 | 3.1.5 |
Affected products
1Patches
2a1b9bf7f24f9Merge pull request from GHSA-h3fg-h5v3-vf8m
1 file changed · +0 −1
frontend/app/controllers/spree/orders_controller.rb+0 −1 modified@@ -10,7 +10,6 @@ class OrdersController < Spree::StoreController before_action :assign_order, only: :update # note: do not lock the #edit action because that's where we redirect when we fail to acquire a lock around_action :lock_order, only: :update - skip_before_action :verify_authenticity_token, only: [:populate] def show @order = Spree::Order.find_by!(number: params[:id])
4d17cacf066dProtect `Spree::OrdersController#populate` against CSRF attacks
1 file changed · +0 −1
frontend/app/controllers/spree/orders_controller.rb+0 −1 modified@@ -10,7 +10,6 @@ class OrdersController < Spree::StoreController before_action :assign_order, only: :update # note: do not lock the #edit action because that's where we redirect when we fail to acquire a lock around_action :lock_order, only: :update - skip_before_action :verify_authenticity_token, only: [:populate] def show @order = Spree::Order.find_by!(number: params[:id])
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- github.com/advisories/GHSA-h3fg-h5v3-vf8mghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2021-43846ghsaADVISORY
- github.com/rubysec/ruby-advisory-db/blob/master/gems/solidus_frontend/CVE-2021-43846.ymlghsaWEB
- github.com/solidusio/solidus/commit/4d17cacf066d9492fc04eb3a0b16084b47376d81ghsax_refsource_MISCWEB
- github.com/solidusio/solidus/commit/a1b9bf7f24f9b8684fc4d943eacb02b1926c77c6ghsax_refsource_MISCWEB
- github.com/solidusio/solidus/security/advisories/GHSA-h3fg-h5v3-vf8mghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.