GitHub Advisoryadvisory · npm
GHSA-257v-vj4p-3w2h Regular Expression Denial of Service (ReDOS)
MEDIUM
Official page ↗
- Aliases
- CVE-2021-29060
- Ecosystem
- npm
- Packages
- color-string
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
- Weaknesses
- CWE-770
- Reviewed
- 2021-06-21
Affected packages
• npm color-string: < 1.5.5 → fixed in 1.5.5
Description
In the npm package `color-string`, there is a ReDos (Regular Expression Denial of Service) vulnerability regarding an exponential time complexity for
linearly increasing input lengths for `hwb()` color strings.
Strings reaching more than 5000 characters would see several
milliseconds of processing time; strings reaching more than
50,000 characters began seeing 1500ms (1.5s) of processing time.
The cause was due to a the regular expression that parses
hwb() strings - specifically, the hue value - where
the integer portion of the hue value used a 0-or-more quantifier
shortly thereafter followed by a 1-or-more quantifier.
This caused excessive backtracking and a cartesian scan,
resulting in exponential time complexity given a linear
increase in input length.
Related
Alias · CVE (1)
- CVE-2021-29060 A Regular Expression Denial of Service (ReDOS) vulnerability was discovered in Color-String version 1.5.5 and below which occurs when the… vulnerability
Weakness · CWE (1)
- CWE-770 Allocation of Resources Without Limits or Throttling weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2021-29060 advisory
- https://github.com/Qix-/color-string/commit/0789e21284c33d89ebc4ab4ca6f759b9375ac9d3 web
- https://github.com/Qix-/color-string/releases/tag/1.5.5 web
- https://github.com/yetingli/PoCs/blob/main/CVE-2021-29060/Color-String.md web
- https://github.com/yetingli/SaveResults/blob/main/js/color-string.js web
- https://www.npmjs.com/package/color-string web