Vulnerabilities
Prototype Pollution
Also known as: Object.prototype pollution, __proto__ injection
Definition
A JavaScript vulnerability where untrusted input modifies Object.prototype, injecting properties into every object and changing application behaviour or leading to RCE.
Examples
- POSTing {"__proto__":{"isAdmin":true}} to a JSON merge endpoint and gaining admin everywhere.
- Polluting prototype to alter template rendering options and trigger RCE.
Related terms
Insecure Deserialization
A vulnerability where an application deserialises untrusted data, letting attackers instantiate arbitrary objects and frequently achieve remote code execution.
Mass Assignment
A vulnerability where an application blindly binds client-supplied request fields to internal object properties, letting attackers set fields they should not control.
Input Validation
Input Validation — definition coming soon.
Broken Access Control
A class of vulnerabilities where authorization rules are missing or incorrectly enforced, letting users perform actions or reach data outside their privileges.
Supply Chain Attack
An attack that compromises a trusted third-party software, hardware, or service provider in order to reach its downstream customers.