Security
Headlines
HeadlinesLatestCVEs

Headline

GHSA-8639-qx56-r428: CSRF allows attacker to finalize/unfinalize order adjustments in solidus_backend

Impact

CSRF vulnerability allowing attackers to change the state of an order’s adjustments if they hold its number, and the execution happens on a store administrator’s computer.

Reproduction steps:

  • Take an order’s number.
  • Log in as an administrator.
  • Visit that order’s adjustments section (Orders -> {Click on number} -> Adjustments) and check that its adjustments are finalized (closed padlock under the State column).
  • On another tab, visit {your_site_url}/admin/orders/{order_number}/adjustments/unfinalize.
  • Notice how the adjustments are unfinalized (open padlock), even if the previous was a GET request which could have been linked from any other site.
  • Visit {your_site_url}/admin/orders/{order_number}/adjustments/finalize.
  • Notice how the adjustments are again finalized.

That happened because both routes were handled as GET requests, which are skipped by Rails anti-forgery protection.

Patches

Users should upgrade to solidus_backend v3.1.6, v3.0.6, or v2.11.16, depending on the major and minor versions in use.

References

For more information

If you have any questions or comments about this advisory:

ghsa
#csrf#vulnerability#git#ruby

Impact

CSRF vulnerability allowing attackers to change the state of an order’s adjustments if they hold its number, and the execution happens on a store administrator’s computer.

Reproduction steps:

  • Take an order’s number.
  • Log in as an administrator.
  • Visit that order’s adjustments section (Orders -> {Click on number} -> Adjustments) and check that its adjustments are finalized (closed padlock under the State column).
  • On another tab, visit {your_site_url}/admin/orders/{order_number}/adjustments/unfinalize.
  • Notice how the adjustments are unfinalized (open padlock), even if the previous was a GET request which could have been linked from any other site.
  • Visit {your_site_url}/admin/orders/{order_number}/adjustments/finalize.
  • Notice how the adjustments are again finalized.

That happened because both routes were handled as GET requests, which are skipped by Rails anti-forgery protection.

Patches

Users should upgrade to solidus_backend v3.1.6, v3.0.6, or v2.11.16, depending on the major and minor versions in use.

References

  • Rails CSRF protection.

For more information

If you have any questions or comments about this advisory:

  • Open an issue or a discussion in Solidus.
  • Email us at [email protected]
  • Contact the core team on Slack

References

  • GHSA-8639-qx56-r428
  • https://nvd.nist.gov/vuln/detail/CVE-2022-31000
  • solidusio/solidus@de796a2

Related news

CVE-2022-31000: Merge pull request from GHSA-8639-qx56-r428 · solidusio/solidus@de796a2

solidus_backend is the admin interface for the Solidus e-commerce framework. Versions prior to 3.1.6, 3.0.6, and 2.11.16 contain a cross-site request forgery (CSRF) vulnerability. The vulnerability allows attackers to change the state of an order's adjustments if they hold its number, and the execution happens on a store administrator's computer. Users should upgrade to solidus_backend 3.1.6, 3.0.6, or 2.11.16 to receive a patch.