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

212 results · Clear filters · Feed

  • Medium 4.0

    Prototype Pollution

    This affects the package sds from 0.0.0. The library could be tricked into adding or modifying properties of the Object.prototype by abusing the set function located in js/set.js. **Note:** This vulnerability derives from an incomplete fix to [CVE-2020-7618](…

  • Medium 6.5

    Prototype Pollution

    All versions of package dset are vulnerable to Prototype Pollution via 'dset/merge' mode, as the dset function checks for prototype pollution by validating if the top-level path contains __proto__, constructor or protorype. By crafting a malicious object, it …

  • Medium 6.5

    Sandbox Bypass

    This affects all versions of package notevil; all versions of package argencoders-notevil. It is vulnerable to Sandbox Escape leading to Prototype pollution. The package fails to restrict access to the main context, allowing an attacker to add or modify an ob…

  • Medium 6.3

    Prototype Pollution

    The package bodymen from 0.0.0 are vulnerable to Prototype Pollution via the handler function which could be tricked into adding or modifying properties of Object.prototype using a __proto__ payload. **Note:** This vulnerability derives from an incomplete fix…

  • Medium 6.1

    Prototype Pollution in jquery.cookie

    jQuery Cookie 1.4.1 is affected by prototype pollution, which can lead to DOM cross-site scripting (XSS).

  • Medium 5.6

    Prototype Pollution

    The package keyget from 0.0.0 are vulnerable to Prototype Pollution via the methods set, push, and at which could allow an attacker to cause a denial of service and may lead to remote code execution. **Note:** This vulnerability derives from an incomplete fix…

  • Medium 6.5

    Prototype Pollution

    All versions of package sey are vulnerable to Prototype Pollution via the deepmerge() function.

  • Medium 6.5

    Prototype Pollution

    All versions of package merge-deep2 are vulnerable to Prototype Pollution via the mergeDeep() function.

  • Medium 6.5

    Prototype Pollution

    All versions of package comb are vulnerable to Prototype Pollution via the deepMerge() function.

  • Medium 5.9

    Prototype Pollution

    The package algoliasearch-helper before 3.6.2 are vulnerable to Prototype Pollution due to use of the merge function in src/SearchParameters/index.jsSearchParameters._parseNumbers without any protection against prototype properties. Note that this vulnerabili…

  • Medium 5.6

    Prototype Pollution

    This affects the package json-ptr before 3.0.0. A type confusion vulnerability can lead to a bypass of CVE-2020-7766 when the user-provided keys used in the pointer parameter are arrays.

  • Medium 5.6

    Prototype Pollution

    This affects the package jsonpointer before 5.0.0. A type confusion vulnerability can lead to a bypass of a previous Prototype Pollution fix when the pointer components are arrays.

  • Medium 5.6

    Prototype Pollution

    This affects the package dotty before 0.1.2. A type confusion vulnerability can lead to a bypass of CVE-2021-25912 when the user-provided keys used in the path parameter are arrays.

  • Medium 5.6

    Prototype Pollution

    This affects all versions of package json-pointer. A type confusion vulnerability can lead to a bypass of CVE-2020-7709 when the pointer components are arrays.

  • Medium 5.6

    Prototype Pollution

    This affects the package jointjs before 3.4.2. A type confusion vulnerability can lead to a bypass of CVE-2020-28480 when the user-provided keys used in the path parameter are arrays in the setByPath function.

  • Medium 6.2

    Fix prototype pollution in the zrender merge and clone helper methods

    ZRender is a lightweight graphic library providing 2d draw for Apache ECharts. In versions prior to 5.2.1, using `merge` and `clone` helper methods in the `src/core/util.ts` module results in prototype pollution. It affects the popular data visualization libr…

  • Medium 6.8

    DOM-based XSS/Content Spoofing via Prototype Pollution

    Jitsi Meet is an open source video conferencing application. Versions prior to 2.0.6173 are vulnerable to client-side cross-site scripting via injecting properties into JSON objects that were not properly escaped. There are no known incidents related to this …

  • Medium 6.8

    Prototype Pollution in viking04/merge

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

  • Medium 5.6

    Prototype Pollution

    This affects the package immer before 9.0.6. A type confusion vulnerability can lead to a bypass of CVE-2020-28477 when the user-provided keys used in the path parameter are arrays. In particular, this bypass is possible because the condition (p === "__proto_…

  • Medium 5.6

    Prototype Pollution

    This affects all versions of package Proto. It is possible to inject pollute the object property of an application using Proto by leveraging the merge function.

  • Medium 5.6

    Prototype Pollution

    This affects the package object-path before 0.11.6. A type confusion vulnerability can lead to a bypass of CVE-2020-15256 when the path components used in the path parameter are arrays. In particular, the condition currentPath === '__proto__' returns false if…

  • Medium 5.4

    Prototype Pollution

    This affects all versions of package mootools. This is due to the ability to pass untrusted input to Object.merge()

  • Medium 4.4

    Remote Code Execution via unsafe classes in otherwise permitted modules

    The module `AccessControl` defines security policies for Python code used in restricted code within Zope applications. Restricted code is any code that resides in Zope's object database, such as the contents of `Script (Python)` objects. The policies defined …

  • Medium 5.6

    Prototype Pollution

    All versions of package deepmergefn are vulnerable to Prototype Pollution via deepMerge function.

  • Medium 5.3

    Denial of Service (DoS)

    This affects the package jszip before 3.7.0. Crafting a new zip file with filenames set to Object prototype values (e.g __proto__, toString, etc) results in a returned object with a modified prototype instance.

  • Medium 5.4

    Prototype Pollution

    This affects the package com.graphhopper:graphhopper-web-bundle before 3.2, from 4.0-pre1 and before 4.0. The URL parser could be tricked into adding or modifying properties of Object.prototype using a constructor or __proto__ payload.

  • Medium 6.5

    Apache Druid: The HTTP inputSource allows authenticated users to read data from other sources than intended

    In the Druid ingestion system, the InputSource is used for reading data from a certain data source. However, the HTTP InputSource allows authenticated users to read data from other sources than intended, such as the local file system, with the privileges of t…

  • Medium 5.6

    Prototype Pollution

    All versions of package lutils are vulnerable to Prototype Pollution via the main (merge) function.

  • Medium 5.6
    CVE-2021-23383 Public exploit

    Prototype Pollution

    The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to compile templates coming from an untrusted source.

  • Medium 6.7

    Prototype poisoning

    msgpack5 is a msgpack v5 implementation for node.js and the browser. In msgpack5 before versions 3.6.1, 4.5.1, and 5.2.1 there is a "Prototype Poisoning" vulnerability. When msgpack5 decodes a map containing a key "__proto__", it assigns the decoded value to …

  • Medium 5.6

    Prototype Pollution

    This affects all versions of package iniparserjs. This vulnerability relates when ini_parser.js is concentrating arrays. Depending on if user input is provided, an attacker can overwrite and pollute the object prototype of a program.

  • 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.

  • 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.

  • 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…

  • Medium 6.0

    Prototype Pollution

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

  • 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 …

  • 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…

  • Medium —

    Prototype Pollution in smart-extend

    All versions of `smart-extend` are vulnerable to Prototype Pollution. The `deep()` 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 fi…