|1 via 1 paths|
Find, fix and prevent vulnerabilities in your code.
- Vulnerable module: uglify-js
- Introduced through: email@example.com
Introduced through: firstname.lastname@example.org › email@example.comRemediation: Upgrade to firstname.lastname@example.org.
parse() function in the
uglify-js package prior to version 2.6.0 is vulnerable to regular expression denial of service (ReDoS) attacks when long inputs of certain patterns are processed.
Let’s take the following regular expression as an example:
regex = /A(B|C+)+D/
This regular expression accomplishes the following:
AThe string must start with the letter 'A'
(B|C+)+The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the
+matches one or more times). The
+at the end of this section states that we can look for one or more matches of this section.
DFinally, we ensure this section of the string ends with a 'D'
The expression would match inputs such as
It most cases, it doesn't take very long for a regex engine to find a match:
From there, the number of steps the engine must use to validate a string just continues to grow.
|String||Number of C's||Number of steps|
Upgrade to version
2.6.0 or greater.
If a direct dependency update is not possible, use
snyk wizard to patch this vulnerability.