|1 via 2 paths|
Find, fix and prevent vulnerabilities in your code.
- Vulnerable module: ramda
- Introduced through: email@example.com
Introduced through: firstname.lastname@example.org › email@example.com › firstname.lastname@example.org
Introduced through: email@example.com › firstname.lastname@example.org › email@example.com › firstname.lastname@example.org
Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) in
source/trim.js within variable
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|
A fix was pushed into the
master branch but not yet published.