Miggo Logo

CVE-2021-23807: Prototype Pollution in node-jsonpointer

5.6

CVSS Score
3.1

Basic Information

EPSS Score
0.27242%
Published
11/8/2021
Updated
3/5/2025
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Package NameEcosystemVulnerable VersionsFirst Patched Version
jsonpointernpm< 5.0.05.0.0
org.webjars.npm:json-pointernpm< 5.0.05.0.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key issues: 1) In setter, the prototype pollution guard only checked fixed positions in the pointer array (indexes 1 and 2), failing to handle multi-segment paths and array-based components. 2) In compilePointer, the lack of type validation for array elements allowed attackers to use nested arrays as pointer components, causing type mismatches (array vs string) that bypassed security checks. The patch added iterative checks for dangerous properties in all pointer positions and strict type validation for pointer components, confirming these functions were the attack surface.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

T*is *****ts t** p**k*** `jsonpoint*r` ***or* `*.*.*`. * typ* *on*usion vuln*r**ility **n l*** to * *yp*ss o* * pr*vious Prototyp* Pollution *ix w**n t** point*r *ompon*nts *r* *rr*ys.

Reasoning

T** vuln*r**ility st*ms *rom two k*y issu*s: *) In s*tt*r, t** prototyp* pollution *u*r* only ****k** *ix** positions in t** point*r *rr*y (in**x*s * *n* *), **ilin* to **n*l* multi-s**m*nt p*t*s *n* *rr*y-**s** *ompon*nts. *) In *ompil*Point*r, t**