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

172 results · Clear filters · Feed

  • Critical 9.3

    Perforce Helix Authentication Service (HAS) deployments that retain the shipped default SCIM bearer token are vulnerabl…

  • Critical 10.0

    Payload: RCE in Payload Form Builder

    Payload is a free and open source headless content management system. In @payloadcms/plugin-form-builder versions before 3.90.0 and canary versions before 4.0.0-canary.34, an attacker can craft a form submission that executes code remotely on the server. This…

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

  • Critical 9.5

    Tinypool: Prototype Pollution gadget in worker options leads to Remote Code Execution

    Tinypool is a minimal Node.js worker thread pool implementation. Prior to 2.1.1, Tinypool constructs ThreadPool.options from a normal options object and reads the execArgv and env worker options in dist/index.js, allowing values inherited from a polluted Obje…

  • Critical 9.2

    piscina: Prototype-pollution gadget in ThreadPool.options allows RCE via execArgv / loadBalancer / env

    piscina is a node.js worker pool implementation. Prior to 4.9.4, 5.3.2, and 6.0.0-rc.5, Piscina stores ThreadPool.options in src/index.ts as a plain object that inherits from Object.prototype. Applications with a separate prototype-pollution primitive can the…

  • Critical 10.0

    vm2 3.11.0 through 3.11.7 Prototype Pollution via TypedArray

    vm2 versions from 3.11.0 before 3.11.8 fail to protect host TypedArray and ArrayBuffer prototypes from sandbox mutation. Attackers can use prototype-walking primitives to reach and modify host Uint8Array.prototype, %TypedArray%.prototype, and ArrayBuffer.prot…

  • Critical 9.1

    Yayson: Prototype pollution in the Store/LegacyStore deserialization

    Yayson is a library for serializing and reading JSON API data in JavaScript. Prior to 4.3.0, Store and LegacyStore use attacker-controlled JSON:API type, id, and relationship names as keys in plain-object lookup tables in src/yayson/store.ts and src/yayson/le…

  • Critical 9.4

    exceljs through 4.4.0 Prototype Pollution via deepMerge Reached From Note Serialization

    exceljs through 4.4.0 contains a prototype pollution vulnerability in the deepMerge helper that fails to reject __proto__, constructor, or prototype keys when merging note objects. Attackers can assign parsed JSON with a malicious __proto__ property to cell n…

  • Critical 9.1

    scimPatch vulnerable to prototype pollution via unfiltered keys in patch

    `scim-patch`, a library to perform SCIM patch, prior to version 0.9.1 performs prototype pollution when applying a SCIM PATCH operation whose `value` object contains a key like `"__proto__.someProp"`. After one such patch, `Object.prototype.someProp` is set p…

  • Critical 9.4

    n8n: XML Node Prototype Pollution Patch Bypass

    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 bypass the patch for CVE-2026-42232 in the XML node. When combined with other nodes, this coul…

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

  • Critical 9.9

    deepstream is vulnerable to prototype pollution

    deepstream is a server that allows clients and backend services to sync data, send messages and make rpcs at scale. Versions prior to 10.0.5 are vulnerable to Prototype Pollution. Exploitation can lead to potential privilege escalation from any authenticated …

  • Critical 9.1

    i18next-http-middleware missingKeyHandler does not reject keys whose segments contain prototype-polluting names

    i18next-http-middleware is a middleware to be used with Node.js web frameworks like express or Fastify and also for Deno. In versions prior to 3.9.7, the missingKeyHandler blocked the literal request-body keys __proto__, constructor, and prototype (added in 3…

  • Critical 9.1

    i18next-fs-backend: Prototype pollution via crafted missing-key string

    Versions prior to 2.6.6 are vulnerable to prototype pollution via crafted missing-key strings when used to persist missing translation keys (e.g. via i18next-http-middleware's missingKeyHandler exposed to untrusted input). Backend.writeFile() splits each queu…

  • Critical 9.1

    Apostrophe has Server-Side Prototype Pollution in apos.util.set via patch operators that leads to process-wide authorization bypass

    ApostropheCMS is an open-source Node.js content management system. In versions up to and including 4.30.0, `apos.util.set()` traverses dot-notation paths without sanitizing `__proto__`, allowing an authenticated editor to write arbitrary values to `Object.pro…

  • Critical 10.0

    vm2: Sandbox escape

    vm2 is an open source vm/sandbox for Node.js. From 3.9.6 to 3.10.5, vm2's bridge exposes mutable proxies for real host-realm intrinsic prototypes and then forwards sandbox writes into the underlying host objects with otherReflectSet() and otherReflectDefinePr…

  • Critical 9.8

    query-parser-string is vulnerable to Prototype Pollution

    NPM package query-parser-string 1.0.0 is vulnerable to Prototype Pollution. The package does not properly sanitize user supplied query parameters and merges them to the newly created object.

  • Critical 9.8

    parse-ini is vulnerable to Prototype Pollution in index.js()

    npm package parse-ini v1.0.6 is vulnerable to Prototype Pollution in index.js().

  • Critical 9.4

    n8n: XML Node Prototype Pollution to RCE

    n8n is an open source workflow automation platform. Prior to versions 1.123.32, 2.17.4, and 2.18.1, an authenticated user with permission to create or modify workflows could achieve global prototype pollution via the XML Node leading to RCE when combined with…

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

  • Critical —

    Convict has Prototype Pollution via startsWith() function

    ### Summary A prototype pollution vulnerability exists in the latest version of the convict npm package (6.2.4). Despite a previous fix that attempted to mitigate prototype pollution by checking whether user input started with a forbidden key, it is still pos…

  • Critical —

    Convict has prototype pollution via load(), loadFile(), and schema initialization

    ### Impact Two unguarded prototype pollution paths exist, not covered by previous fixes: 1. `config.load()` / `config.loadFile()` — `overlay()` recursively merges config data without checking for forbidden keys. Input containing` __proto__` or `constructor.pr…

  • Critical 9.4

    n8n Vulnerable to Prototype Pollution in XML & GSuiteAdmin node parameters lead to RCE

    n8n is an open source workflow automation platform. Prior to versions 2.14.1, 2.13.3, and 1.123.27, an authenticated user with permission to create or modify workflows could exploit a prototype pollution vulnerability in the XML and the GSuiteAdmin nodes. By …

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

  • Critical 9.3

    oRPC: Prototype Pollution in `@orpc/client` via `StandardRPCJsonSerializer` Deserialization

    oRPC is an tool that helps build APIs that are end-to-end type-safe and adhere to OpenAPI standards. Prior to version 1.13.6, a prototype pollution vulnerability exists in the RPC JSON deserializer of the @orpc/client package. The vulnerability allows unauthe…

  • 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

    Prototype pollution in set-in

    set-in provides the set value of nested associative structure given array of keys. A prototype pollution vulnerability exists in the the npm package set-in (>=2.0.1, < 2.0.5). Despite a previous fix that attempted to mitigate prototype pollution by checking w…

  • Critical 9.8

    CASL Ability, versions 2.4.0 through 6.7.4, contains a prototype pollution vulnerability.

    CASL Ability, versions 2.4.0 through 6.7.4, contains a prototype pollution vulnerability.

  • Critical 9.1

    @nyariv/sandboxjs has host prototype pollution from sandbox via array intermediary (sandbox escape)

    SandboxJS is a JavaScript sandboxing library. Prior to 0.8.31, a sandbox escape vulnerability allows sandboxed code to mutate host built-in prototypes by laundering the isGlobal protection flag through array literal intermediaries. When a global prototype ref…

  • Critical 9.4

    Locutus is vulnerable to Prototype Pollution

    Locutus brings stdlibs of other programming languages to JavaScript for educational purposes. In versions from 2.0.12 to before 2.0.39, a prototype pollution vulnerability exists in locutus. Despite a previous fix that attempted to mitigate prototype pollutio…

  • Critical 9.3

    Prototype Pollution via FormData Processing in Qwik City

    Qwik is a performance focused javascript framework. Prior to version 1.19.0, a prototype pollution vulnerability exists in the formToObj() function within @builder.io/qwik-city middleware. The function processes form field names with dot notation (e.g., user.…

  • Critical 10.0

    SandboxJS Prototype Pollution -> Sandbox Escape -> RCE

    SandboxJS is a JavaScript sandboxing library. Prior to 0.8.27, SanboxJS does not properly restrict __lookupGetter__ which can be used to obtain prototypes, which can be used for escaping the sandbox / remote code execution. This vulnerability is fixed in 0.8.…

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

  • Critical 9.8

    JSONPath vulnerable to Prototype Pollution due to insufficient input validation of object keys in lib/index.js

    The value function in jsonpath 1.1.1 lib/index.js is vulnerable to Prototype Pollution.

  • Critical 9.8

    Tarkov Data Manager Authentication Bypass vulnerability

    The Tarkov Data Manager is a tool to manage the Tarkov item data. Prior to 02 January 2025, an authentication bypass vulnerability in the login endpoint allows any unauthenticated user to gain full admin access to the Tarkov Data Manager admin panel by exploi…

  • Critical 9.3

    apidoc-core - prototype pollution in api_group.js, api_param_title.js, api_use.js, and api_permission.js worker

    Prototype pollution vulnerability in apidoc-core versions 0.2.0 and all subsequent versions allows remote attackers to modify JavaScript object prototypes via malformed data structures, including the “define” property processed by the application, potentially…

  • Critical 9.1

    Elysia vulnerable to prototype pollution with multiple standalone schema validation

    Elysia is a Typescript framework for request validation, type inference, OpenAPI documentation and client-server communication. Versions 1.4.0 through 1.4.16 contain a prototype pollution vulnerability in `mergeDeep` after merging results of two standard sche…

  • Critical 9.8

    CVE-2025-13204

    npm package `expr-eval` is vulnerable to Prototype Pollution. An attacker with access to express eval interface can use JavaScript prototype-based inheritance model to achieve arbitrary code execution. The npm expr-eval-fork package resolves this issue.

  • Critical 9.4

    --disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom

    In versions before 20.0.2, it was found that --disallow-code-generation-from-strings is not sufficient for isolating untrusted JavaScript in happy-dom. The untrusted script and the rest of the application still run in the same Isolate/process, so attackers ca…