Miggo Logo

CVE-2024-47183: Parse Server's custom object ID allows to acquire role privileges

8.1

CVSS Score
3.1

Basic Information

EPSS Score
0.35331%
Published
10/4/2024
Updated
11/13/2024
KEV Status
No
Technology
TechnologyJavaScript

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
parse-servernpm< 6.5.96.5.9
parse-servernpm>= 7.0.0, < 7.3.07.3.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from two key points: 1) The user creation endpoint (handleCreate in ClassesRouter) didn't prevent object IDs starting with 'role:' which are reserved for system roles. 2) The session authentication logic (getAuthForSessionToken in Auth.js) didn't invalidate existing sessions using these poisoned IDs. The commit diffs show added validation in both locations - object ID prefix check during user creation and session token validation - confirming these were the vulnerable points before patching.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

### Imp**t I* t** P*rs* S*rv*r option `*llow*ustomO*j**tI*: tru*` is s*t, *n *tt**k*r t**t is *llow** to *r**t* * n*w us*r **n s*t * *ustom o*j**t I* *or t**t n*w us*r t**t *xploits t** vuln*r**ility *n* **quir*s privil***s o* * sp**i*i* rol*. ###

Reasoning

T** vuln*r**ility st*ms *rom two k*y points: *) T** us*r *r**tion *n*point (`**n*l**r**t*` in `*l*ss*sRout*r`) *i*n't pr*v*nt o*j**t I*s st*rtin* wit* 'rol*:' w*i** *r* r*s*rv** *or syst*m rol*s. *) T** s*ssion *ut**nti**tion lo*i* (`**t*ut**orS*ssio