prototype-pollution
Detects JavaScript deep-merges or property assignment from user input that can pollute Object.prototype. Use when writing JavaScript or TypeScript code that deep-merges, clones, or extends objects using user-controlled input. Also invoke when using lodash merge/set, Object.assign with dynamic keys, or recursive property copy on untrusted data.
Install
With your agent
Install OMGSkills skill "thejefflarson/soundcheck:.claude/skills/prototype-pollution" into this agent's normal skills directory: call the OMGSkills MCP get_install_plan tool for your agent and run the script it returns (it installs only the pinned commit and verifies SKILL.md), and stop if MCP or the pin is unavailable. Do not overwrite or change existing skills without asking me.
Manual command
git clone https://github.com/thejefflarson/soundcheck /tmp/soundcheck && ln -s /tmp/soundcheck/.claude/skills/prototype-pollution ~/.claude/skills/prototype-pollution
From README
Prototype Pollution Security Check (CWE-1321) What this checks Protects against prototype pollution in JavaScript/TypeScript where an attacker injects properties like proto or constructor.prototype through user input, modifying the prototype chain of all objects. Exploitation leads to property injection, auth bypass, and remote code execution in some frameworks. Vulnerable patterns Deep merge of user input into a config or options object using a library helper that recurses through proto. Object.assign or spread of a parsed JSON body into a target object — the proto key is copied as a regular property and walked by the engine. Custom recursive merge that iterates source keys with no filter — proto and constructor.prototype are merged in alongside everything else. Dynamic property assignment where both the key and the value come from user input, with no key validation. Fix immediately Flag the vulnerable code and explain the risk. Then suggest a fix that establishes these properties.
More from this repo
authentication-failures
Detects weak password storage, flawed JWT validation, sessions surviving logout, and missing MFA in authentication code.
broken-access-control
Detects missing ownership checks, broken role enforcement, and IDOR vulnerabilities that let users access other users'...
concurrency-correctness
Detects multi-threaded code where a lock is held across a blocking operation, lock acquisition order risks deadlock,...
