Miggo Logo

CVE-2020-7715: Prototype Pollution in deep-get-set

9.8

CVSS Score
3.1

Basic Information

EPSS Score
0.73009%
Published
5/6/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:H/I:H/A:H
Package NameEcosystemVulnerable VersionsFirst Patched Version
deep-get-setnpm< 1.1.11.1.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from the package's core get/set functionality handling user-supplied paths without prototype pollution protections. The commit diff shows added validation for proto, prototype and constructor keys in both get and set operations. Prior to patch 1.1.1, the functions: 1) In get(): Line 14 lacked isSafeKey check, allowing prototype property access 2) In set(): Line 26 lacked early return for unsafe keys, enabling prototype modification. The main exported 'deep' function acts as a router to these vulnerable get/set implementations based on argument count.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

*ll v*rsions o* p**k*** ***p-**t-s*t prior to v*rsion *.*.* *r* vuln*r**l* to Prototyp* Pollution vi* t** m*in *un*tion.

Reasoning

T** vuln*r**ility st*ms *rom t** p**k***'s *or* **t/s*t *un*tion*lity **n*lin* us*r-suppli** p*t*s wit*out prototyp* pollution prot**tions. T** *ommit *i** s*ows ***** v*li**tion *or __proto__, prototyp* *n* *onstru*tor k*ys in *ot* **t *n* s*t op*r*