Miggo Logo

CVE-2020-28477: Prototype Pollution in immer

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.70542%
Published
1/20/2021
Updated
4/25/2024
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
immernpm>= 7.0.0, < 8.0.18.0.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability manifests in the path traversal logic within applyPatches. Before the fix, the code did not validate if path segments like proto or prototype were being accessed. The proof of exploit demonstrates prototype pollution through add/replace operations using proto paths. The security fix in commit da2bd4f specifically adds validation checks in this path traversal loop to block manipulation of reserved properties, confirming this was the vulnerable code path.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

## Ov*rvi*w *****t** v*rsions o* imm*r *r* vuln*r**l* to Prototyp* Pollution. ## Proo* o* *xploit ```js *onst {*pplyP*t***s, *n**l*P*t***s} = r*quir*("imm*r"); *n**l*P*t***s(); l*t o*j = {}; *onsol*.lo*("***or* : " + o*j.pollut**); *pplyP*t***s({}

Reasoning

T** vuln*r**ility m*ni**sts in t** p*t* tr*v*rs*l lo*i* wit*in *pplyP*t***s. ***or* t** *ix, t** *o** *i* not v*li**t* i* p*t* s**m*nts lik* __proto__ or prototyp* w*r* **in* ****ss**. T** proo* o* *xploit **monstr*t*s prototyp* pollution t*rou** ***