{"id":"GHSA-wgxm-rg53-h2c6","summary":"Prototype pollution vulnerability in 'deep-set'","details":"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.\n\n### PoC\n```js\nvar deepSet = require('deep-set')\nvar obj = {'1':'2'}\nconsole.log(obj.isAdmin);\ndeepSet(obj, '__proto__.isAdmin', 'true')\nconsole.log(obj.isAdmin);\n```","aliases":["CVE-2020-28276"],"modified":"2024-04-22T23:44:02.442411Z","published":"2022-05-24T17:37:25Z","database_specific":{"github_reviewed_at":"2024-04-22T23:14:16Z","nvd_published_at":"2020-12-29T17:15:00Z","cwe_ids":["CWE-1321"],"severity":"CRITICAL","github_reviewed":true},"references":[{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2020-28276"},{"type":"PACKAGE","url":"https://github.com/klaemo/deep-set"},{"type":"WEB","url":"https://github.com/klaemo/deep-set/blob/103d650b3de1f5c6cf051236347ba59e7274cd07/index.js#L39"},{"type":"WEB","url":"https://web.archive.org/web/20210320110509/https://www.whitesourcesoftware.com/vulnerability-database/CVE-2020-28276"}],"affected":[{"package":{"name":"deep-set","ecosystem":"npm","purl":"pkg:npm/deep-set"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.0.0"},{"last_affected":"1.0.1"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2022/05/GHSA-wgxm-rg53-h2c6/GHSA-wgxm-rg53-h2c6.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}