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

40 results · Clear filters · Feed

  • Critical 9.3
    CVE-2026-105844 Public exploit

    Payload: Prototype pollution in Payload Import Export plugin

    Payload is a free and open source headless content management system. In versions from 3.0.0 before 3.88.0 and canary versions before 4.0.0-canary.27, an unauthenticated user can submit prototype-sensitive field paths when @payloadcms/plugin-import-export is …

  • Critical 9.5
    CVE-2026-104849 Public exploit

    Tinypool: Prototype Pollution Gadget to RCE in run() options

    Tinypool is a minimal Node.js worker thread pool implementation. Prior to 2.1.2, Tinypool reads filename from a caller-supplied options object in pool.run(task, options) without requiring an own property, so a polluted Object.prototype.filename can replace th…

  • High 8.1
    CVE-2026-85625 Public exploit

    sift 17.1.3 Prototype Pollution Remote Code Execution via $where

    sift (sift.js) 17.1.3 enumerates query keys with for...in, which walks the object prototype chain, and dispatches any matched operator key including $where. The $where operation compiles a string value into a function using new Function unless CSP_ENABLED is …

  • Medium 6.3
    CVE-2026-15598 Public exploit

    antv layout object.js setNestedValue prototype pollution

    A weakness has been identified in antv layout 2.0.0. This impacts the function setNestedValue in the library lib/util/object.js. Executing a manipulation of the argument path can lead to improperly controlled modification of object prototype attributes. The a…

  • Critical 9.4
    CVE-2026-44789 Public exploit

    n8n: HTTP Request Node Pagination Prototype Pollution to RCE

    n8n is an open source workflow automation platform. Prior to 1.123.43, 2.22.1, and 2.20.7, an authenticated user with permission to create or modify workflows could achieve global prototype pollution via an unvalidated pagination parameter in the HTTP Request…

  • High 7.5
    CVE-2026-8161 Public exploit

    multiparty vulnerable to Denial of Service via Prototype Pollution leading to Uncaught Exception

    multiparty@4.2.3 and lower versions are vulnerable to denial of service via uncaught exception. By sending a multipart/form-data request with a field name that collides with an inherited Object.prototype property such as __proto__, constructor, or toString, t…

  • Critical 9.4
    CVE-2026-42231 Public exploit

    n8n: Prototype Pollution in XML Webhook Body Parser Leads to RCE

    n8n is an open source workflow automation platform. Prior to versions 1.123.32, 2.17.4, and 2.18.1, a flaw in the xml2js library used to parse XML request bodies in n8n's webhook handler allowed prototype pollution via a crafted XML payload. An authenticated …

  • High 8.6
    CVE-2026-34621 Exploited Public exploit

    Acrobat Reader | Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') (CWE-1321)

    Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier are affected by an Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') vulnerability that could result in arbitrary code execution in the context of the curre…

    KEV Apr 13, 2026
  • Critical 9.9
    CVE-2026-32621 Public exploit

    Apollo Federation has prototype pollution via incomplete key sanitization

    Apollo Federation is an architecture for declaratively composing APIs into a unified graph. Prior to 2.9.6, 2.10.5, 2.11.6, 2.12.3, and 2.13.2, a vulnerability exists in query plan execution within the gateway that may allow pollution of Object.prototype in c…

  • Medium 5.0
    CVE-2026-2964 Public exploit

    higuma web-audio-recorder-js Dynamic Config Handling WebAudioRecorder.js extend prototype pollution

    A vulnerability was identified in higuma web-audio-recorder-js 0.1/0.1.1. Impacted is the function extend in the library lib/WebAudioRecorder.js of the component Dynamic Config Handling. Such manipulation leads to improperly controlled modification of object …

  • Critical 9.4
    CVE-2026-27212 Public exploit

    Swiper has a Prototype Pollution Vulnerability

    Swiper is a free and mobile touch slider with hardware accelerated transitions and native behavior. Versions 6.5.1 through 12.1.1 have a Prototype pollution vulnerability. The vulnerability resides in line 94 of shared/utils.mjs, where the indexOf() function …

  • Critical 9.4
    CVE-2026-25047 Public exploit

    deepHas vulnerable to Prototype Pollution via constructor.prototype

    deepHas provides a test for the existence of a nested object key and optionally returns that key. A prototype pollution vulnerability exists in version 1.0.7 of the deephas npm package that allows an attacker to modify global object behavior. This issue was f…

  • Medium 6.9
    CVE-2025-13465 Public exploit

    Prototype Pollution Vulnerability in Lodash _.unset and _.omit functions

    The _.unset and _.omit functions in Lodash are vulnerable to prototype pollution. An attacker can pass crafted paths which cause Lodash to delete methods from global prototypes. The issue permits deletion of properties but does not allow overwriting their ori…

  • Critical 10.0
    CVE-2011-10019 Public exploit

    Spreecommerce < 0.60.2 Search Parameter RCE

    Spreecommerce versions prior to 0.60.2 contains a remote command execution vulnerability in its search functionality. The application fails to properly sanitize input passed via the search[send][] parameter, which is dynamically invoked using Ruby’s send meth…

  • Medium 5.7
    CVE-2024-57708 Public exploit

    An issue in OneTrust SDK v.6.33.0 allows a local attacker to cause a denial of service via the Object.setPrototypeOf, _…

  • Critical 9.8
    CVE-2025-49223 Public exploit

    billboard.js allows prototype pollution via the function generate

    billboard.js before 3.15.1 was discovered to contain a prototype pollution via the function generate, which could allow attackers to execute arbitrary code or cause a Denial of Service (DoS) via injecting arbitrary properties.

  • Critical 9.1
    CVE-2025-25014 Public exploit EPSS 22%

    Kibana arbitrary code execution via prototype pollution

    A Prototype pollution vulnerability in Kibana leads to arbitrary code execution via crafted HTTP requests to machine learning and reporting endpoints.

  • Critical 9.8
    CVE-2024-56059 Public exploit

    WordPress Partners plugin <= 0.2.0 - PHP Object Injection vulnerability

    Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') vulnerability in farinspace Partners partners allows Object Injection.This issue affects Partners: from n/a through <= 0.2.0.

  • Critical 9.1
    CVE-2024-48910 Public exploit

    DOMPurify vulnerable to tampering by prototype polution

    DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. DOMPurify was vulnerable to prototype pollution. This vulnerability is fixed in 2.4.2.

  • Medium 4.0
    CVE-2024-33883 Public exploit

    ejs lacks certain pollution protection

    The ejs (aka Embedded JavaScript templates) package before 3.1.10 for Node.js lacks certain pollution protection.

  • Medium 6.3
    CVE-2024-23339 Public exploit

    hoolock does not block Prototype pollution with object-path related utilities

    hoolock is a suite of lightweight utilities designed to maintain a small footprint when bundled. Starting in version 2.0.0 and prior to version 2.2.1, utility functions related to object paths (`get`, `set`, and `update`) did not block attempts to access or a…

  • High 7.3
    CVE-2023-45827 Public exploit

    Prototype Pollution vulnerability in @clickbar/dot-diver

    Dot diver is a lightweight, powerful, and dependency-free TypeScript utility library that provides types and functions to work with object paths in dot notation. In versions prior to 1.0.2 there is a Prototype Pollution vulnerability in the `setByPath` functi…

  • Medium 6.5
    CVE-2023-26136 Public exploit

    tough-cookie Prototype Pollution vulnerability

    Versions of the package tough-cookie before 4.1.3 are vulnerable to Prototype Pollution due to improper handling of Cookies when using CookieJar in rejectPublicSuffixes=false mode. This issue arises from the manner in which the objects are initialized.

  • High 7.8
    CVE-2023-30533 Public exploit

    Prototype Pollution in sheetJS

    SheetJS Community Edition before 0.19.3 allows Prototype Pollution via a crafted file. In other words. 0.19.2 and earlier are affected, whereas 0.19.3 and later are unaffected.

  • High 7.1
    CVE-2022-46175 Public exploit

    Prototype Pollution in JSON5 via Parse Method

    JSON5 is an extension to the popular JSON file format that aims to be easier to write and maintain by hand (e.g. for config files). The `parse` method of the JSON5 library before and including versions 1.0.1 and 2.2.1 does not restrict parsing of keys named `…

  • High 8.8
    CVE-2022-1802 Public exploit EPSS 28%

    If an attacker was able to corrupt the methods of an Array object in JavaScript via prototype pollution, they could hav…

  • High 7.5
    CVE-2022-24999 Public exploit EPSS 16%

    qs vulnerable to Prototype Pollution

    qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an __ proto__ key can be used. In many typical Express use cases, an unauthenticated remote attacker can pl…

  • Critical 9.8
    CVE-2021-44906 Public exploit

    Prototype Pollution in minimist

    Minimist <=1.2.5 is vulnerable to Prototype Pollution via file index.js, function setKey() (lines 69-95).

  • Critical 10.0
    CVE-2022-24760 Public exploit EPSS 49%

    Command Injection in Parse server

    Parse Server is an open source http web server backend. In versions prior to 4.10.7 there is a Remote Code Execution (RCE) vulnerability in Parse Server. This vulnerability affects Parse Server in the default configuration with MongoDB. The main weakness that…

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

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

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

  • High 7.5
    CVE-2020-7699 Public exploit

    Prototype Pollution

    This affects the package express-fileupload before 1.1.8. If the parseNested option is enabled, sending a corrupt HTTP request can lead to denial of service or arbitrary code execution.

  • High 7.4
    CVE-2020-8203 Public exploit

    Prototype Pollution in lodash

    Prototype pollution attack when using _.zipObjectDeep in lodash before 4.17.20.

  • Medium 5.6
    CVE-2020-7598 Public exploit

    Prototype Pollution in minimist

    minimist before 1.2.2 could be tricked into adding or modifying properties of Object.prototype using a "constructor" or "__proto__" payload.

  • Critical 9.8
    CVE-2019-19919 Public exploit

    Prototype Pollution in handlebars

    Versions of handlebars prior to 4.3.0 are vulnerable to Prototype Pollution leading to Remote Code Execution. Templates may alter an Object's __proto__ and __defineGetter__ properties, which may allow an attacker to execute arbitrary code through crafted payl…

  • High 8.5
    CVE-2019-16328 Public exploit EPSS 13%

    Dynamic modification of RPyC service due to missing security check

    In RPyC 4.1.x through 4.1.1, a remote attacker can dynamically modify object attributes to construct a remote procedure call that executes code for an RPyC service with default configuration settings.

  • Critical 9.1
    CVE-2019-10744 Public exploit

    Prototype Pollution in lodash

    Versions of lodash lower than 4.17.12 are vulnerable to Prototype Pollution. The function defaultsDeep could be tricked into adding or modifying properties of Object.prototype using a constructor payload.

  • Medium 6.1
    CVE-2019-11358 Public exploit EPSS 87%

    XSS in jQuery as used in Drupal, Backdrop CMS, and other products

    jQuery before 3.4.0, as used in Drupal, Backdrop CMS, and other products, mishandles jQuery.extend(true, {}, ...) because of Object.prototype pollution. If an unsanitized source object contained an enumerable __proto__ property, it could extend the native Obj…