Explore

Rule Explorer

Search the public rule index by CVE, GHSA, CWE, language, framework, author, or rule slug. Filter by language, framework, severity, confidence, license, and validation status.

Public rules
2917
Downloads
3.2M
Verified
2917
Authors
2
Search the rule indexUse CVE, GHSA, CWE, language, framework, package, or rule slug.
27 rules matched. Showing 24 loaded rules.
Publish rule
CVE-2026-55091: Flat To Nested Proto Pollutioncve-2026-55091-flat-to-nested-proto-pollution

A plain object `{}` is used as a dictionary map for objects from an array, with a key derived directly from the object's properties. If the key is controlled by an attacker (e.g., `__proto__`), this can lead to Prototype Pollution. Use `Object.create(null)` to safely store items without inheriting from `Object.prototype`.

by Provallyupdated 2026-06-23Apache-2.0
7420 direct742 via packs
downloads
76quality
CVE-2026-48713: Unvalidated Array Traversal Prototype Pollutioncve-2026-48713-unvalidated-array-traversal-prototype-pollution

Detected an unvalidated queue traversal using user-controlled array keys (e.g., via `shift()` or `pop()`). Assigning or dynamically navigating an object using unvalidated parts of a path leaves it vulnerable to Prototype Pollution. Always validate path segments against a denylist (e.g. `['__proto__', 'constructor', 'prototype']`).

by Provallyupdated 2026-06-23Apache-2.0
7420 direct742 via packs
downloads
73quality
CVE-2026-46510: Prototype Pollution Via In Operatorcve-2026-46510-prototype-pollution-via-in-operator

Checking property existence with the `in` operator can lead to prototype pollution when dealing with user-controlled keys. The `in` operator traverses the prototype chain and evaluates to true for internal properties like `__proto__` and `constructor`. If the property is then extracted and modified, it can pollute the global object prototype. Replace `in` wi

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
73quality
CVE-2026-35209: Object Assign Prototype Hijackcve-2026-35209-object-assign-prototype-hijack

Cloning objects with `Object.assign({}, ...)` can lead to local prototype pollution if an input argument contains a malicious `__proto__` property (such as from parsed JSON). `Object.assign` invokes the `__proto__` setter on the new empty target object, altering its prototype chain. When this cloned object is subsequently merged, iterated via `for...in`, or

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
73quality
CVE-2026-33994: Js Prototype Pollution Regex Test Guardcve-2026-33994-js-prototype-pollution-regex-test-guard

Using `RegExp.prototype.test` against a regex containing `__proto__`, `constructor`, or `prototype` as a prototype-pollution guard is bypassable. `RegExp.prototype.test` is a writable prototype method; an attacker that can override it (via another gadget in the same realm) can force the guard to return `false` and re-enable `Object.prototype` pollution throu

by Provallyupdated 2026-06-12Apache-2.0
1.3K0 direct1.3K via packs
downloads
81quality
CVE-2026-33228: Array Index Via String Wrapper Prototype Pollutioncve-2026-33228-array-index-via-string-wrapper-prototype-pollution

A String wrapper instance is used directly as an Array index without numeric coercion. Array property access for non-numeric string keys traverses the prototype chain, so an attacker-controlled value such as "__proto__" resolves to Array.prototype, leaking a live reference that enables prototype pollution (CWE-1321). Coerce the value with `+value` or validat

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
86quality
CVE-2026-32621: Js Prototype Pollution Dynamic Key Mergecve-2026-32621-js-prototype-pollution-dynamic-key-merge

Possible prototype pollution (CWE-1321): assigning into a target object using a key obtained from another object's keys (Object.keys(...) or for..in) without first ensuring the property is an own property of the target. If the key is an inheritable name (e.g. `__proto__`, `constructor`, `prototype`, `toString`), the bracket-notation write traverses the proto

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
80quality
CVE-2026-29063: Immutable Js Iterate Unguarded Key Assignment Prototype Pollutioncve-2026-29063-immutable-js-iterate-unguarded-key-assignment-prototype-pollution

Iteration callback writes `$OBJ[$K] = $V` to a plain object without filtering prototype-polluting keys (e.g. '__proto__', 'constructor'). When the iterated collection's keys are attacker-controlled (e.g. an Immutable.Map built from `fromJS(JSON.parse(input))`), this triggers the prototype setter and pollutes the returned object's prototype (CVE-2026-29063, C

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
76quality
CVE-2026-26021: Prototype Pollution Via Includes Guardcve-2026-26021-prototype-pollution-via-includes-guard

Using `Array.prototype.includes()` to guard against prototype-pollution keys ('__proto__', 'constructor', 'prototype') is bypassable. An attacker who can execute JavaScript in the same realm before this guard runs can shadow `Array.prototype.includes` (e.g., `Array.prototype.includes = () => false`), causing the check to silently pass and allowing the forbid

by Provallyupdated 2026-06-12Apache-2.0
1.3K0 direct1.3K via packs
downloads
85quality
CVE-2026-25639: Javascript Recursive Merge Prototype Pollutioncve-2026-25639-javascript-recursive-merge-prototype-pollution

A recursive merge/assign callback writes to `result[key]` (and may recurse via a deep-merge call) without filtering the dangerous property names "__proto__", "constructor", and "prototype". When the source object is attacker-influenced (e.g., parsed JSON used as request config), iterating its keys and assigning them onto a fresh object pollutes Object.protot

by Provallyupdated 2026-06-12Apache-2.0
1.3K0 direct1.3K via packs
downloads
83quality
CVE-2026-25587: Prototype Guard Unsafe Hasownproperty Instance Methodcve-2026-25587-prototype-guard-unsafe-hasownproperty-instance-method

Calling `.hasOwnProperty()` as an instance method in a function-property mutation guard is unsafe in sandbox or access-control code. When the guarded object is itself a prototype (e.g., `Map.prototype`), its built-in methods ARE own properties. As a result, `!obj.hasOwnProperty(prop)` evaluates to `false` and the guard silently permits the overwrite. This al

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
78quality
CVE-2026-25586: Unsafe Hasownproperty Shadowingcve-2026-25586-unsafe-hasownproperty-shadowing

Calling hasOwnProperty() as a direct instance method on an object can be defeated by an attacker who supplies an object with a shadowed hasOwnProperty (e.g., { hasOwnProperty: () => true }). In sandbox or security-boundary code this causes prototype-access guards to silently pass, enabling host Object.prototype pollution. Use Object.prototype.hasOwnProperty.

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
79quality
CVE-2026-21854: Js Auth Bracket Lookup Loose Equalitycve-2026-21854-js-auth-bracket-lookup-loose-equality

Authentication compares a bracket-indexed object lookup (e.g. users[username]) to a value using loose equality (==). When the bracket key originates from untrusted input, an attacker can pass "__proto__" so the lookup returns Object.prototype, which is truthy and is coerced by == to "[object Object]" — matching a chosen password and bypassing authentication.

by Provallyupdated 2026-06-12Apache-2.0
1.3K0 direct1.3K via packs
downloads
86quality
CVE-2026-12644: Incomplete Object Property Blocklistcve-2026-12644-incomplete-object-property-blocklist

An incomplete blocklist was used to filter object keys. Filtering properties like `__proto__` and `constructor` but failing to filter essential `Object.prototype` properties like `toString`, `valueOf`, and `hasOwnProperty` can lead to application crashes (DoS) when overridden properties are unexpectedly executed. Consider validating against an extensive list

by Provallyupdated 2026-06-23Apache-2.0
7420 direct742 via packs
downloads
73quality
CVE-2026-1774: Prototype Pollution Via Path Reducecve-2026-1774-prototype-pollution-via-path-reduce

Walking a dot-notation path via Array.reduce and assigning each segment as an object property (`$RES[$PROP] = $RES[$PROP] || {}`) without filtering `__proto__`, `constructor`, or `prototype` enables prototype pollution (CWE-1321). When the path is attacker-controllable (e.g., rule condition keys, JSON config, query parameters) a value such as `__proto__.x` w

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
83quality
CVE-2025-61140: Jsonpath Prototype Pollution Cve 2025 61140cve-2025-61140-jsonpath-prototype-pollution-cve-2025-61140

The dchester/jsonpath library uses JSONPath components as object keys in its write-capable / traversal methods (value, apply, parent, _vivify, nodes, _normalize) without rejecting prototype-chain keys such as `__proto__`, `prototype`, or `constructor`. In versions < 1.2.0 this allows prototype pollution (CVE-2025-61140, CWE-1321) when path strings are influe

by Provallyupdated 2026-06-12Apache-2.0
1.3K0 direct1.3K via packs
downloads
83quality
CVE-2025-53626: Src Expression Ts Cwe 79 Cve 2025 53626cve-2025-53626-src-expression-ts-cwe-79-cve-2025-53626

Exposing the raw global `Object` alongside other built-ins often indicates an evaluation context or sandbox creation. Passing the raw `Object` allows attackers to access reflection and prototype manipulation methods (e.g., `Object.getPrototypeOf`, `Object.getOwnPropertyDescriptor`). This can lead to sandbox escape, arbitrary code execution, or prototype poll

by Provallyupdated 2026-06-12Apache-2.0
1K0 direct1K via packs
downloads
68quality
CVE-2025-25977: Js Prototype Pollution Bracket Fallback Then Writecve-2025-25977-js-prototype-pollution-bracket-fallback-then-write

Reading a property from a plain object with a non-literal key and a `|| {}` fallback, then writing into the resulting object via bracket notation, enables prototype pollution (CWE-1321; see CVE-2025-25977). If the key evaluates to "__proto__", the lookup resolves to Object.prototype (not undefined), and the subsequent `props[name] = value` writes onto the gl

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
86quality
CVE-2025-3193: Incomplete Prototype Pollution Filtercve-2025-3193-incomplete-prototype-pollution-filter

A key iteration loop attempts to prevent prototype pollution by blocking the '__proto__' key but fails to block the 'constructor' key. This allows attackers to execute Prototype Pollution attacks by injecting 'constructor.prototype' changes, which may lead to arbitrary code execution or logic bypass.

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
81quality
CVE-2024-39008: Javascript Prototype Pollution Recursive Deep Mergecve-2024-39008-javascript-prototype-pollution-recursive-deep-merge

Recursive deep-merge iterates source-object keys with `for...in` and assigns to `base[key]` by recursing into `base[key]` itself (`base[key] = merge(base[key], value)`) without filtering the dangerous keys `__proto__`, `constructor`, or `prototype`. If any source object is derived from attacker-controlled input (e.g., JSON.parse of a request body), reading `

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
83quality
CVE-2024-38999: Js Foreach Prop No Proto Blocklistcve-2024-38999-js-foreach-prop-no-proto-blocklist

`for...in` loop is guarded only by an own-property check (`hasProp`/`hasOwnProperty`) without filtering the dangerous keys `__proto__` and `constructor`. When the loop body forwards `prop` into a recursive merge or assignment on another object (a common pattern in `mixin`/`extend`/`configure` helpers), an attacker who can supply the iterated object via `JSON

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
83quality
CVE-2024-32866: Unchecked Prototype Pollution Loopcve-2024-32866-unchecked-prototype-pollution-loop

Detected a loop traversing object properties using user-controlled deep assignments without prototype pollution protections. Using `obj[key] ?? fallback` allows traversing out into `Object.prototype`, which can enable attackers to blindly pollute the global object. Use `Object.hasOwn(obj, key)` before accessing or assigning nested arbitrary properties.

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
75quality
CVE-2024-29651: Custom Merge Prototype Pollutioncve-2024-29651-custom-merge-prototype-pollution

A custom iteration over `Object.keys()` is used to access or assign to another object without explicitly filtering out dangerous keys like `__proto__`, `constructor`, or `prototype`. This pattern is typically found in vulnerable merge routines and can lead to Prototype Pollution.

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
73quality
CVE-2024-21529: Implicit String Coercion Prototype Pollutioncve-2024-21529-implicit-string-coercion-prototype-pollution

The key `$K` is extracted from an array and checked against restricted properties (e.g., `__proto__`) using strict equality (`===`) without prior string coercion. An attacker can bypass this check by providing a nested array (e.g., `['__proto__']`). During property access (`$O[$K]`), implicit string coercion turns the array into the restricted key, leading t

by Provallyupdated 2026-06-12Apache-2.0
1.2K0 direct1.2K via packs
downloads
76quality
24 of 27 loaded