|1 via 1 paths|
Find, fix and prevent vulnerabilities in your code.
- Vulnerable module: ua-parser-js
- Introduced through: firstname.lastname@example.org
Introduced through: email@example.comRemediation: Upgrade to firstname.lastname@example.org.
Affected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS). Within
src/ua-parser.js, the browser regex is vulnerable to exponential backtracking.
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|
ua-parser-js to version 0.7.24 or higher.