Miggo Logo

CVE-2020-7755: Regular Expression Denial of Service in dat.gui

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.67094%
Published
5/10/2021
Updated
2/1/2023
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
dat.guinpm<= 0.7.7

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two specific regex patterns shown in GitHub Issue #278:

  1. /^rgb(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*)/ (line 61)
  2. /^rgba(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*)/ (line 79) These patterns use greedy .+ matches between whitespace patterns (\s*), creating exponential backtracking scenarios. The provided PoC demonstrates how crafted inputs like 'rgb( ' with large whitespace can trigger ReDoS. The file path and line numbers are explicitly referenced in the vulnerability report, and the fix in PR #279 directly modifies these regex patterns.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

*ll v*rsions o* p**k*** **t.*ui *r* vuln*r**l* to R**ul*r *xpr*ssion **ni*l o* S*rvi** (R**oS) vi* sp**i*i**lly *r**t** r** *n* r*** v*lu*s.

Reasoning

T** vuln*r**ility st*ms *rom two sp**i*i* r***x p*tt*rns s*own in *it*u* Issu* #***: *. /^r**\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/ (lin* **) *. /^r***\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/ (lin* **) T**s* p*tt*rns us* *r***y .+ m*t***s **t