The product receives input from an upstream component that specifies multiple attributes, properties, or fields that are to be initialized or updated in an object, but it does not properly control which attributes can be modified.
If the object contains attributes that were only intended for internal use, then their unexpected modification could lead to a vulnerability. This weakness is sometimes known by the language-specific mechanisms that make it possible, such as mass assignment, autobinding, or object injection.
Impact: Modify Application Data
An attacker could modify sensitive data or program variables.
Impact: Execute Unauthorized Code or Commands
Impact: Varies by ContextAlter Execution Logic
Strategy: Input Validation
Strategy: Refactoring
javascriptjavascriptjavascript
// Ignore attributes which resolve to object prototype* if (attr === "proto" || attr === "constructor" || attr === "prototype") {
javascript