{"id":"CVE-2020-28276","aliases":["EUVD-2022-5576","GHSA-wgxm-rg53-h2c6"],"status":"published","title":"Prototype pollution vulnerability in 'deep-set'","description":"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 remote code execution.","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-11","score":0.03071,"percentile":0.87817,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-1321"],"published":"2020-12-29T16:58:24Z","modified":"2026-06-17T03:10:15Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"deep-set","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.0"},{"last_affected":"1.0.1"}]}]},{"source":"osv","ecosystem":"npm","package":"deep-set","ranges":[{"type":"SEMVER","events":[{"introduced":"1.0.0"},{"last_affected":"1.0.1"}]}]}],"products":[{"vendor":"deep-set_project","product":"deep-set"}],"references":[{"url":"https://github.com/klaemo/deep-set/blob/103d650b3de1f5c6cf051236347ba59e7274cd07/index.js#L39","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://www.whitesourcesoftware.com/vulnerability-database/CVE-2020-28276","tags":["x_refsource_CONFIRM","x_transferred","Exploit","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-28276","tags":["advisory"]},{"url":"https://web.archive.org/web/20210320110509/https://www.whitesourcesoftware.com/vulnerability-database/CVE-2020-28276","tags":["web"]},{"url":"https://github.com/advisories/GHSA-wgxm-rg53-h2c6"},{"url":"https://github.com/klaemo/deep-set","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2020-28276","description":"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 remote code execution.","status":"published","published":"2020-12-29T16:58:24Z","modified":"2024-08-04T16:33:58.457Z","updated_at":"2026-11-02T14:35:57.017407Z"}],"euvd":[{"id":"EUVD-2022-5576","description":"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 remote code execution.","status":"published","published":"2020-12-29T16:58:24Z","modified":"2024-08-04T16:33:58Z","updated_at":"2026-11-03T03:07:10.123634Z"}],"ghsa":[{"id":"GHSA-wgxm-rg53-h2c6","title":"Prototype pollution vulnerability in 'deep-set'","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.\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```","status":"published","published":"2022-05-24T17:37:25Z","modified":"2024-04-22T23:14:17Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T14:37:44.335614Z"}],"nvd":[{"id":"CVE-2020-28276","description":"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 remote code execution.","status":"published","published":"2020-12-29T17:15:12.567Z","modified":"2026-06-17T03:10:15.78Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"},{"version":"2.0","score":7.5,"vector":"AV:N/AC:L/Au:N/C:P/I:P/A:P","level":"high","assessor":"primary"}],"updated_at":"2026-11-02T14:06:28.340168Z"}],"osv":[{"id":"GHSA-wgxm-rg53-h2c6","title":"Prototype pollution vulnerability in 'deep-set'","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.\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```","status":"published","published":"2022-05-24T17:37:25Z","modified":"2024-04-22T23:44:02.442411Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T15:46:58.767335Z"}]}}
