Lucene search

K
rubygemsRubySecRUBY:SOLIDUS_BACKEND-2022-31000
HistoryMay 31, 2022 - 9:00 p.m.

CSRF allows attacker to finalize/unfinalize order adjustments in solidus_backend

2022-05-3121:00:00
RubySec
github.com
13
csrf
solidus_backend
order adjustments
administrator
rails
upgrade

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

PARTIAL

Availability Impact

NONE

AV:N/AC:M/Au:N/C:N/I:P/A:N

CVSS3

4.3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

LOW

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N

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

Affected configurations

Vulners
Node
rubysolidus_backendRange2.11.02.11.16
OR
rubysolidus_backendRange3.0.03.0.6
OR
rubysolidus_backendRange3.1.6
VendorProductVersionCPE
rubysolidus_backend*cpe:2.3:a:ruby:solidus_backend:*:*:*:*:*:*:*:*

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

PARTIAL

Availability Impact

NONE

AV:N/AC:M/Au:N/C:N/I:P/A:N

CVSS3

4.3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

NONE

Integrity Impact

LOW

Availability Impact

NONE

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N

Related for RUBY:SOLIDUS_BACKEND-2022-31000