{"id":"CVE-2020-28276","aliases":[],"url":"https://o3.security/vulnerability/CVE-2020-28276","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```","published":"2022-05-24T17:37:25Z","modified":"2024-04-22T23:44:02.442411Z","cvss":{"score":9.8,"severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},"epss":null,"cisaKev":null,"exploitsKnown":2,"affectedPackages":[{"ecosystem":"npm","name":"deep-set","fixedVersion":null}],"fix":null,"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"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2024-04-22T23:44:02.442411Z"}}