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

307 results · Clear filters · Feed

  • High 7.5

    Prototype Pollution

    The package convict before 6.2.2 are vulnerable to Prototype Pollution via the convict function due to missing validation of parentKey. **Note:** This vulnerability derives from an incomplete fix of another [vulnerability](https://security.snyk.io/vuln/SNYK-J…

  • High 7.3

    Prototype Pollution

    The package dexie before 3.2.2, from 4.0.0-alpha.1 and before 4.0.0-alpha.3 are vulnerable to Prototype Pollution in the Dexie.setByKeyPath(obj, keyPath, value) function which does not properly check the keys being set (like __proto__ or constructor). This ca…

  • High 7.5

    Prototype Pollution

    The package madlib-object-utils before 0.1.8 are vulnerable to Prototype Pollution via the setValue method, as it allows an attacker to merge object prototypes into it. *Note:* This vulnerability derives from an incomplete fix of [CVE-2020-7701](https://secur…

  • High 7.3

    Prototype Pollution

    This affects the package nconf before 0.11.4. When using the memory engine, it is possible to store a nested JSON representation of the configuration. The .set() function, that is responsible for setting the configuration properties, is vulnerable to Prototyp…

  • High 7.3

    Prototype Pollution in alvarotrigo/fullpage.js

    Prototype Pollution in GitHub repository alvarotrigo/fullpage.js prior to 4.0.2.

  • High 7.8

    Prototype Pollution in async

    In Async before 2.6.4 and 3.x before 3.2.2, a malicious user can obtain privileges via the mapValues() method, aka lib/internal/iterator.js createObjectIterator prototype pollution.

  • High 8.1

    Prototype Pollution in deepmerge-ts

    deepmerge-ts is a typescript library providing functionality to deep merging of javascript objects. deepmerge-ts is vulnerable to Prototype Pollution via file deepmerge.ts, function defaultMergeRecords(). This issue has been patched in version 4.0.2. There ar…

  • High 8.6

    Prototype Pollution

    The package set-in before 2.0.3 are vulnerable to Prototype Pollution via the setIn method, as it allows an attacker to merge object prototypes into it. **Note:** This vulnerability derives from an incomplete fix of [CVE-2020-28273](https://security.snyk.io/v…

  • High 7.5

    Prototype Pollution

    The package libnested before 1.5.2 are vulnerable to Prototype Pollution via the set function in index.js. **Note:** This vulnerability derives from an incomplete fix for [CVE-2020-28283](https://security.snyk.io/vuln/SNYK-JS-LIBNESTED-1054930)

  • High 7.6

    Prototype Pollution

    The package object-extend from 0.0.0 are vulnerable to Prototype Pollution via object-extend.

  • High 7.3

    Prototype Pollution

    This affects the package litespeed.js before 0.3.12; the package appwrite/server-ce from 0.12.0 and before 0.12.2, before 0.11.1. When parsing the query string in the getJsonFromUrl function, the key that is set in the result object is not properly sanitized …

  • High 8.1

    Validation bypass in frourio

    Frourio is a full stack framework, for TypeScript. Frourio users who uses frourio version prior to v0.26.0 and integration with class-validator through `validators/` folder are subject to a input validation vulnerability. Validators do not work properly for r…

  • High 8.1

    Validation bypass in frourio-express

    Frourio-express is a minimal full stack framework, for TypeScript. Frourio-express users who uses frourio-express version prior to v0.26.0 and integration with class-validator through `validators/` folder are subject to a input validation vulnerability. Valid…

  • High 7.5

    Prototype Pollution

    The package object-path-set before 1.0.2 are vulnerable to Prototype Pollution via the setPath method, as it allows an attacker to merge object prototypes into it. *Note:* This vulnerability derives from an incomplete fix in https://security.snyk.io/vuln/SNYK…

  • High 8.2

    Prototype Pollution

    This affects the package putil-merge before 3.8.0. The merge() function does not check the values passed into the argument. An attacker can supply a malicious value by adjusting the value to include the constructor property. Note: This vulnerability derives f…

  • High 7.5

    Prototype Pollution

    This affects the package @strikeentco/set before 1.0.2. It allows an attacker to cause a denial of service and may lead to remote code execution. **Note:** This vulnerability derives from an incomplete fix in https://security.snyk.io/vuln/SNYK-JS-STRIKEENTCOS…

  • High 7.4
    CVE-2022-0432 Scanner template

    Prototype Pollution in mastodon/mastodon

    Prototype Pollution in GitHub repository mastodon/mastodon prior to 3.5.0.

  • High 7.3

    Prototype Pollution

    The package bmoor before 0.10.1 are vulnerable to Prototype Pollution due to missing sanitization in set function. **Note:** This vulnerability derives from an incomplete fix in [CVE-2020-7736](https://security.snyk.io/vuln/SNYK-JS-BMOOR-598664)

  • High 7.3

    Prototype Pollution

    The package cached-path-relative before 1.1.0 are vulnerable to Prototype Pollution via the cache variable that is set as {} instead of Object.create(null) in the cachedPathRelative function, which allows access to the parent prototype properties when the obj…

  • High 7.5

    Prototype Pollution

    The package min-dash before 3.8.1 are vulnerable to Prototype Pollution via the set method due to missing enforcement of key types.

  • High 7.3

    Prototype Pollution

    The package extend2 before 1.0.1 are vulnerable to Prototype Pollution via the extend function due to unsafe recursive merge.

  • High 8.8

    JavaScript Prototype Pollution in oro/platform

    OroPlatform is a PHP Business Application Platform. In affected versions by sending a specially crafted request, an attacker could inject properties into existing JavaScript language construct prototypes, such as objects. Later this injection may lead to JS c…

  • High 7.5

    Prototype Pollution

    All versions of package js-data are vulnerable to Prototype Pollution via the deepFillIn and the set functions. This is an incomplete fix of [CVE-2020-28442](https://snyk.io/vuln/SNYK-JS-JSDATA-1023655).

  • High 7.5
    CVE-2021-23450 EPSS 30%

    Prototype Pollution

    All versions of package dojo are vulnerable to Prototype Pollution via the setObject function.

  • High 8.0

    Prototype Pollution in fabiocaccamo/utils.js

    utils.js is vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • High 8.6

    Prototype Pollution

    This affects all versions of package x-assign. The global proto object can be polluted using the __proto__ object.

  • High —

    Prototype Pollution in mixme

    ### Impact When copying properties from a source object to a target object, the target object can gain access to certain properties of the source object and modify their content. ### Patches The problem was patch with a more agressive discovery of secured pro…

  • High 8.6

    Prototype Pollution

    This affects all versions of package @cookiex/deep. The global proto object can be polluted using the __proto__ object.

  • High 7.5

    Prototype Pollution in mariocasciaro/object-path

    object-path is vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • High 7.6

    Prototype Pollution in fiznool/body-parser-xml

    body-parser-xml is vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • High 7.3

    Prototype Pollution

    This affects the package set-value before <2.0.1, >=3.0.0 <4.0.1. A type confusion vulnerability can lead to a bypass of CVE-2019-10747 when the user-provided keys used in the path parameter are arrays.

  • High 7.5

    Prototype Pollution in vincit/objection.js

    objection.js is vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • High 7.5

    Prototype Pollution in immerjs/immer

    immer is vulnerable to Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')

  • High 7.3

    Prototype Pollution

    This affects the package open-graph before 0.2.6. The function parse could be tricked into adding or modifying properties of Object.prototype using a __proto__ or constructor payload.

  • High 7.5

    Improperly Controlled Modification of Object Prototype Attributes

    ### Impact The software 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. ### Patches `think-config@1.1…

  • High 7.5

    Remote Code Execution via Script (Python) objects under Python 3

    Zope is an open-source web application server. Zope versions prior to versions 4.6.3 and 5.3 have a remote code execution security issue. In order to be affected, one must use Python 3 for one's Zope deployment, run Zope 4 below version 4.6.3 or Zope 5 below …

  • High 7.3

    Prototype Pollution

    All versions of package ts-nodash are vulnerable to Prototype Pollution via the Merge() function due to lack of validation input.

  • High 7.3

    Prototype Pollution

    All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.

  • High 7.5

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') in think-helper

    think-helper defines a set of helper functions for ThinkJS. In versions of think-helper prior to 1.1.3, the software receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not proper…

  • High 7.5

    Prototype pollution in supermixer

    Prototype pollution in Stampit supermixer 1.0.3 allows an attacker to modify the prototype of a base object which can vary in severity depending on the implementation.