Skip to content
OpenAdvisories

Weakness (CWE)

CWE-1321: Improperly Controlled Modification of Object Prototype Attributes

Variant Incomplete

The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.

How to prevent it (5 mitigations)
  1. Implementation

    By freezing the object prototype first (for example, Object.freeze(Object.prototype)), modification of the prototype becomes impossible.

  2. Architecture and Design

    By blocking modifications of attributes that resolve to object prototype, such as proto or prototype, this weakness can be mitigated.

  3. Implementation

    When handling untrusted objects, validating using a schema can be used.

  4. Implementation

    By using an object without prototypes (via Object.create(null) ), adding object prototype attributes by accessing the prototype via the special attributes becomes impossible, mitigating this weakness.

  5. Implementation

    Map can be used instead of objects in most cases. If Map methods are used instead of object attributes, it is not possible to access the object prototype or modify it.

Source: MITRE CWE-1321

712 results · Feed

  • Critical 9.8

    dset vulnerable to prototype pollution

    Prototype pollution vulnerability in 'dset' versions 1.0.0 through 2.0.1 allows attacker to cause a denial of service and may lead to remote code execution.

  • Medium 5.6

    Prototype Pollution

    This affects the package multi-ini before 2.1.1. It is possible to pollute an object's prototype by specifying the proto object as part of an array.

  • Medium 5.6

    Prototype Pollution

    This affects the package multi-ini before 2.1.2. It is possible to pollute an object's prototype by specifying the constructor.proto object as part of an array. This is a bypass of CVE-2020-28448.

  • High 7.3
    CVE-2020-28458 Public exploit

    Prototype Pollution

    All versions of package datatables.net are vulnerable to Prototype Pollution due to an incomplete fix for https://snyk.io/vuln/SNYK-JS-DATATABLESNET-598806.

  • High 7.5

    Prototype Pollution

    All versions of package js-data are vulnerable to Prototype Pollution via the deepFillIn function.

  • High 7.5

    Prototype Pollution

    This affects all versions of package mout. The deepFillIn function can be used to 'fill missing properties recursively', while the deepMixIn 'mixes objects into the target object, recursively mixing existing child objects as well'. In both cases, the key used…

  • High 7.3

    Prototype Pollution

    This affects the package ini before 1.3.6. If an attacker submits a malicious INI file to an application that parses it with ini.parse, they will pollute the prototype on the application. This can be exploited further depending on the context.

  • Critical 9.8

    Prototype pollution in set-in

    Prototype pollution vulnerability in 'set-in' versions 1.0.0 through 2.0.0 allows attacker to cause a denial of service and may lead to remote code execution.

  • Critical 9.8

    keyget vulnerable to prototype pollution

    Prototype pollution vulnerability in 'keyget' versions 1.0.0 through 2.2.0 allows attacker to cause a denial of service and may lead to remote code execution.

  • High 7.3
    CVE-2020-7774 EPSS 70%

    Prototype Pollution

    The package y18n before 3.2.2, 4.0.1 and 5.0.5, is vulnerable to Prototype Pollution.

  • High 7.5

    Prototype pollution in controlled-merge

    Prototype pollution vulnerability in 'controlled-merge' versions 1.0.0 through 1.2.0 allows attacker to cause a denial of service and may lead to remote code execution.

  • High 7.5

    Prototype Pollution

    This affects the package doc-path before 2.1.2.

  • Critical 9.8

    Prototype Pollution in deephas

    Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service and may lead to remote code execution.

  • Critical 9.8

    Prototype pollution in object-hierarchy-access

    Prototype pollution vulnerability in 'object-hierarchy-access' versions 0.2.0 through 0.32.0 allows attacker to cause a denial of service and may lead to remote code execution.

  • Critical 9.8

    Prototype Pollution in field

    Prototype pollution vulnerability in 'field' versions 0.0.1 through 1.0.1 allows attacker to cause a denial of service and may lead to remote code execution.

  • Medium 6.5

    Prototype Pollution

    This affects the package json8 before 1.0.3. The function adds in the target object the property specified in the path, however it does not properly check the key being set, leading to a prototype pollution.

  • High 7.5

    Prototype Pollution

    The package grpc before 1.24.4; the package @grpc/grpc-js before 1.1.8 are vulnerable to Prototype Pollution via loadPackageDefinition.

  • High 7.5

    Prototype pollution in @strikeentco/set

    Prototype pollution vulnerability in '@strikeentco/set' version 1.0.0 allows attacker to cause a denial of service and may lead to remote code execution.

  • High 7.3

    Prototype Pollution

    This affects all versions of package json-ptr. The issue occurs in the set operation (https://flitbit.github.io/json-ptr/classes/_src_pointer_.jsonpointer.htmlset) when the force flag is set to true. The function recursively set the property in the target obj…

  • High 7.5

    Prototype pollution in json8-merge-patch

    Prototype pollution vulnerability in json8-merge-patch npm package < 1.0.3 may allow attackers to inject or modify methods and properties of the global object constructor.

  • High 7.5

    Prototype Pollution

    This affects the package chart.js before 2.9.4. The options parameter is not properly sanitized when it is processed. When the options are processed, the existing options (or the defaults options) are deeply merged with provided options. However, during this …

  • Medium 6.0

    Prototype Pollution

    pathval before version 1.1.1 is vulnerable to prototype pollution.

  • Medium 5.6

    Prototype Pollution

    This affects the package @tsed/core before 5.65.7. This vulnerability relates to the deepExtend function which is used as part of the utils directory. Depending on if user input is provided, an attacker can overwrite and pollute the object prototype of a prog…

  • High 7.5

    Prototype Pollution

    This affects the package simpl-schema before 1.10.2.

  • Medium 6.0

    Prototype Pollution

    This affects the package json-pointer before 0.6.1. Multiple reference of object using slash is supported.

  • High 7.3

    Prototype Pollution

    All versions of package safetydance are vulnerable to Prototype Pollution via the set function.

  • High 7.3

    Prototype Pollution

    The package bmoor before 0.8.12 are vulnerable to Prototype Pollution via the set function.

  • Critical 9.8
    CVE-2020-8158 Public exploit

    TypeORM vulnerable to MAID and Prototype Pollution

    Prototype pollution vulnerability in the TypeORM package < 0.2.25 may allow attackers to add or modify Object properties leading to further denial of service or SQL injection attacks.

  • Critical 9.8
    CVE-2019-0230 Public exploit EPSS 97%

    Improperly Controlled Modification of Dynamically-Determined Object Attributes in Apache Struts

    Apache Struts 2.0.0 to 2.5.20 forced double OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution.

  • Medium —

    Prototype Pollution in mergify

    All versions of `mergify` are vulnerable to Prototype Pollution. The `mergify()` function allows attackers to modify the prototype of Object causing the addition or modification of an existing property that will exist on all objects. ## Recommendation No fix …

  • Low —

    Prototype Pollution in @hapi/hoek

    Versions of `@hapi/hoek` prior to 8.5.1 and 9.0.3 are vulnerable to Prototype Pollution. The `clone` function fails to prevent the modification of the Object prototype when passed specially-crafted input. Attackers may use this to change existing properties t…

  • Medium —

    Sandbox Breakout / Prototype Pollution in notevil

    Versions of `notevil` prior to 1.3.3 are vulnerable to Sandbox Escape leading to Prototype pollution. The package fails to restrict access to the main context, allowing attacker to add or modify an object's prototype. Evaluating the payload ```try{a[b];}catch…

  • High —

    Prototype Pollution in sahmat

    All versions of `sahmat ` are vulnerable to prototype pollution. The package does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Recommendation No fi…

  • High —

    Prototype Pollution in safe-object2

    All versions of `safe-object2` are vulnerable to prototype pollution. The `settter()` function does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Re…

  • High —

    Prototype Pollution in getsetdeep

    All versions of `getsetdeep` are vulnerable to prototype pollution. The `setDeep()` function does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Reco…

  • High —

    Prototype Pollution in deep-setter

    All versions of `deep-setter` are vulnerable to prototype pollution. The package does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Recommendation N…

  • High —

    Prototype Pollution in get-setter

    All versions of `get-setter` are vulnerable to prototype pollution. The function `set` does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Recommenda…

  • High —

    Prototype Pollution in reggae

    All versions of `reggae` are vulnerable to prototype pollution. The function `set` does not restrict the modification of an Object's prototype, which may allow a malicious to add or modify an existing property that will exist on all objects. ## Recommendation…

  • High —

    Prototype Pollution in unflatten

    All versions of `unflatten` are vulnerable to prototype pollution. The function `unflatten` does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Recom…

  • High —

    Prototype Pollution in flat-wrap

    All versions of `flat-wrap` are vulnerable to prototype pollution. The function `unflatten` does not restrict the modification of an Object's prototype, which may allow an attacker to add or modify an existing property that will exist on all objects. ## Recom…