Skip to content

Custom object ID allows to acquire role privileges

Critical
mtrezza published GHSA-8xq9-g7ch-35hg Oct 4, 2024

Package

npm parse-server (npm)

Affected versions

(<6.5.9) || (>=7.0.0 <7.3.0)

Patched versions

(>=6.5.9 <7.0.0) || (>=7.3.0)

Description

Impact

If the Parse Server option allowCustomObjectId: true is set, an attacker that is allowed to create a new user can set a custom object ID for that new user that exploits the vulnerability and acquires privileges of a specific role.

Patches

Improved validation for custom user object IDs. Session tokens for existing users with an object ID that exploits the vulnerability are now rejected.

Workarounds

  • Disable custom object IDs by setting allowCustomObjectId: false or not setting the option which defaults to false.
  • Use a Cloud Code Trigger to validate that a new user's object ID doesn't start with the prefix role:.

References

Credits

  • Kartal Kaan Bozdoğan (reporter)
  • Manuel Trezza (coordinator)

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

CVE ID

CVE-2024-47183

Weaknesses

No CWEs

Credits