{"id":"CVE-2021-43616","aliases":["ALPINE-CVE-2021-43616","ALSA-2022:4796","BELL-CVE-2021-43616","DEBIAN-CVE-2021-43616","EUVD-2021-30530","GHSA-ppxp-px5q-gwqm","MGASA-2022-0294","RHSA-2022:4796","RLSA-2022:4796","UBUNTU-CVE-2021-43616"],"status":"disputed","title":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if...","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","severity":{"version":"3.1","score":9,"vector":"CVSS:3.1/AC:H/AV:N/A:H/C:H/I:H/PR:N/S:C/UI:N","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.02617,"percentile":0.85665,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-345"],"published":"2021-11-13T00:00:00Z","modified":"2026-11-03T06:32:41Z","exploits":[{"source":"pocgithub","id":"icatalina/CVE-2021-43616","title":"icatalina/CVE-2021-43616","date":"2021-11-15","url":"https://github.com/icatalina/CVE-2021-43616"}],"fixes":[{"ecosystem":"Alpine:v3.16","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.17","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.18","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.19","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.20","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.21","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.22","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.23","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"Alpine:v3.24","package":"npm","fixed_in":["8.1.4-r0"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"nodejs","fixed_in":["1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"nodejs-devel","fixed_in":["1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"nodejs-docs","fixed_in":["1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"nodejs-full-i18n","fixed_in":["1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"nodejs-nodemon","fixed_in":["2.0.15-1.module_el8.6.0+2904+f21ad6f4","2.0.15-1.module_el8.5.0+2605+45d748af"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"nodejs-packaging","fixed_in":["25-1.module_el8.5.0+246+05401605","25-1.module_el8.5.0+2605+45d748af"],"sources":["osv"]},{"ecosystem":"AlmaLinux:8","package":"npm","fixed_in":["1:8.3.1-1.16.14.0.4.module_el8.6.0+2904+f21ad6f4"],"sources":["osv"]},{"ecosystem":"Debian:12","package":"npm","fixed_in":["8.4.1~ds-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"npm","fixed_in":["8.4.1~ds-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"npm","fixed_in":["8.4.1~ds-1"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs","fixed_in":["1:16.14.0-4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-debuginfo","fixed_in":["1:16.14.0-4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-debugsource","fixed_in":["1:16.14.0-4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-devel","fixed_in":["1:16.14.0-4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-docs","fixed_in":["1:16.14.0-4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-full-i18n","fixed_in":["1:16.14.0-4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-nodemon","fixed_in":["0:2.0.15-1.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-packaging","fixed_in":["0:25-1.module+el8.5.0+10992+fac5fe06"],"sources":["osv"]},{"ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"npm","fixed_in":["1:8.3.1-1.16.14.0.4.module+el8.6.0+15294+54b291d2"],"sources":["osv"]},{"ecosystem":"Rocky Linux:8","package":"nodejs","fixed_in":["1:16.14.0-4.module+el8.6.0+978+59f26232"],"sources":["osv"]},{"ecosystem":"Rocky Linux:8","package":"nodejs-nodemon","fixed_in":["0:2.0.15-1.module+el8.5.0+721+4c107270"],"sources":["osv"]},{"ecosystem":"Rocky Linux:8","package":"nodejs-packaging","fixed_in":["0:25-1.module+el8.6.0+1046+80feca58","0:25-1.module+el8.5.0+702+221f14e6"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Alpine:v3.16","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.17","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.18","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.19","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.20","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.21","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.22","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.23","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"Alpine:v3.24","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"7.0.0"},{"fixed":"8.1.4-r0"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-docs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-full-i18n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module_el8.6.0+2904+f21ad6f4"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-nodemon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.15-1.module_el8.6.0+2904+f21ad6f4"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-nodemon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.0.15-1.module_el8.5.0+2605+45d748af"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-packaging","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"25-1.module_el8.5.0+246+05401605"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"nodejs-packaging","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"25-1.module_el8.5.0+2605+45d748af"}]}]},{"source":"osv","ecosystem":"AlmaLinux:8","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:8.3.1-1.16.14.0.4.module_el8.6.0+2904+f21ad6f4"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.4.1~ds-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.4.1~ds-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.4.1~ds-1"}]}]},{"source":"osv","ecosystem":"Mageia:8","package":"nodejs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"14.20.0-1.1.mga8"}]}],"bundled":6},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-debuginfo","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-debugsource","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-devel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-docs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-full-i18n","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-nodemon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.0.15-1.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"nodejs-packaging","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:25-1.module+el8.5.0+10992+fac5fe06"}]}]},{"source":"osv","ecosystem":"Red Hat:enterprise_linux:8::appstream","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:8.3.1-1.16.14.0.4.module+el8.6.0+15294+54b291d2"}]}]},{"source":"osv","ecosystem":"Rocky Linux:8","package":"nodejs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:16.14.0-4.module+el8.6.0+978+59f26232"}]}]},{"source":"osv","ecosystem":"Rocky Linux:8","package":"nodejs-nodemon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:2.0.15-1.module+el8.5.0+721+4c107270"}]}]},{"source":"osv","ecosystem":"Rocky Linux:8","package":"nodejs-packaging","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:25-1.module+el8.6.0+1046+80feca58"}]}]},{"source":"osv","ecosystem":"Rocky Linux:8","package":"nodejs-packaging","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:25-1.module+el8.5.0+702+221f14e6"}]}]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["7.5.2+ds-2","7.24.2+ds-1","7.24.2+ds-2","8.3.0~ds-1","8.3.0~ds-2","8.3.2~ds-1","8.5.0~ds-1","8.5.1~ds-1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["9.2.0~ds1-1","9.2.0~ds1-2"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["9.2.0~ds1-3"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["9.2.0~ds3-1","11.16.0+ds2-4"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"npm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["9.2.0~ds1-3","9.2.0~ds2-2","9.2.0~ds3-1"]}],"products":[{"vendor":"fedoraproject","product":"fedora"},{"vendor":"netapp","product":"next_generation_application_programming_interface"},{"vendor":"npmjs","product":"npm"}],"references":[{"url":"https://github.com/npm/cli/issues/2701","tags":["x_transferred","Exploit","Issue Tracking","Third Party Advisory","report"]},{"url":"https://docs.npmjs.com/cli/v7/commands/npm-ci","tags":["x_transferred","Product","Vendor Advisory","advisory","report"]},{"url":"https://github.com/icatalina/CVE-2021-43616","tags":["x_transferred","Third Party Advisory","advisory","report"]},{"url":"https://medium.com/cider-sec/this-time-we-were-lucky-85c0dcac94a0","tags":["x_transferred","Exploit","Third Party Advisory","evidence"]},{"url":"https://security.netapp.com/advisory/ntap-20211210-0002/","tags":["x_transferred","Third Party Advisory","advisory"]},{"url":"https://github.com/npm/cli/commit/457e0ae61bbc55846f5af44afa4066921923490f","tags":["x_transferred","Patch","Third Party Advisory","fix"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/NXNVFKOF5ZYH5NIRWHKN6O6UBCHDV6FE/","tags":["vendor-advisory","x_transferred","web"]},{"url":"https://docs.npmjs.com/cli/v8/commands/npm-ci","tags":["x_transferred","web"]},{"url":"https://github.com/npm/cli/issues/2701#issuecomment-979054224","tags":["x_transferred","report"]},{"url":"https://github.com/npm/cli/issues/2701#issuecomment-972900511","tags":["x_transferred","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-43616","tags":["advisory"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NXNVFKOF5ZYH5NIRWHKN6O6UBCHDV6FE/"},{"url":"https://github.com/advisories/GHSA-ppxp-px5q-gwqm"},{"url":"https://security.alpinelinux.org/vuln/CVE-2021-43616","tags":["advisory"]},{"url":"https://errata.almalinux.org/8/ALSA-2022-4796.html","tags":["advisory"]},{"url":"https://vulners.com/cve/CVE-2021-43616","tags":["report"]},{"url":"https://docs.bell-sw.com/security/cves/CVE-2021-43616","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2021-43616","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2022-0294.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=30078","tags":["report"]},{"url":"https://nodejs.org/en/blog/vulnerability/july-2022-security-releases/","tags":["web"]},{"url":"https://github.com/nodejs/node/releases/tag/v14.19.0","tags":["web"]},{"url":"https://github.com/nodejs/node/releases/tag/v14.19.1","tags":["web"]},{"url":"https://github.com/nodejs/node/releases/tag/v14.19.2","tags":["web"]},{"url":"https://github.com/nodejs/node/releases/tag/v14.19.3","tags":["web"]},{"url":"https://github.com/nodejs/node/releases/tag/v14.20.0","tags":["web"]},{"url":"https://access.redhat.com/errata/RHSA-2022:4796","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#important","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2050282","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2022/rhsa-2022_4796.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2021-43616","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2021-43616","tags":["advisory","report"]},{"url":"https://errata.rockylinux.org/RLSA-2022:4796","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2021-43616","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2021-43616","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"disputed","published":"2021-11-13T00:00:00Z","modified":"2024-08-04T04:03:08.795Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AC:H/AV:N/A:H/C:H/I:H/PR:N/S:C/UI:N","level":"critical","assessor":"cna"}],"updated_at":"2026-11-02T14:32:57.033395Z"}],"euvd":[{"id":"EUVD-2021-30530","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"published","published":"2021-11-13T00:00:00Z","modified":"2024-08-04T04:03:08Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AC:H/AV:N/A:H/C:H/I:H/PR:N/S:C/UI:N","level":"critical"}],"updated_at":"2026-11-03T03:24:13.772922Z"}],"ghsa":[{"id":"GHSA-ppxp-px5q-gwqm","title":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if...","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json.","status":"published","published":"2022-05-24T19:20:36Z","modified":"2023-01-30T05:03:49Z","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-345"],"updated_at":"2026-11-02T14:46:55.198962Z"}],"nvd":[{"id":"CVE-2021-43616","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"disputed","published":"2021-11-13T18:15:07.537Z","modified":"2026-06-17T04:11:12.01Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","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-345"],"updated_at":"2026-11-02T14:07:00.984108Z"}],"osv":[{"id":"ALPINE-CVE-2021-43616","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"published","published":"2021-11-13T18:15:07.537Z","modified":"2026-11-03T06:32:41.511473867Z","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"}],"updated_at":"2026-11-03T07:17:02.90744Z"},{"id":"BELL-CVE-2021-43616","title":"CVE-2021-43616 does not affect BellSoft software","status":"withdrawn","published":"2023-08-31T12:15:59.804946Z","modified":"2026-02-18T07:38:25.847759Z","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"}],"updated_at":"2026-11-02T15:28:16.5265Z"},{"id":"CVE-2021-43616","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"published","published":"2021-11-13T18:15:07.537Z","modified":"2026-10-24T10:50:25.967203461Z","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"}],"updated_at":"2026-11-02T15:44:21.877444Z"},{"id":"DEBIAN-CVE-2021-43616","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"published","published":"2021-11-13T18:15:07.537Z","modified":"2026-10-23T18:03:39.005190287Z","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"}],"updated_at":"2026-11-02T15:45:35.799676Z"},{"id":"RHSA-2022:4796","title":"Red Hat Security Advisory: nodejs:16 security update","status":"published","published":"2024-09-14T01:28:09Z","modified":"2026-07-03T10:01:59Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:09.62945Z"},{"id":"RLSA-2022:4796","title":"Important: nodejs:16 security update","description":"Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language. \n\nSecurity Fix(es):\n\n* npm: npm ci succeeds when package-lock.json doesn't match package.json (CVE-2021-43616)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.","status":"published","published":"2022-05-30T07:22:47Z","modified":"2026-02-04T23:30:02.914017Z","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"}],"updated_at":"2026-11-02T15:53:24.322216Z"},{"id":"UBUNTU-CVE-2021-43616","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if dependency information in package-lock.json differs from package.json. This behavior is inconsistent with the documentation, and makes it easier for attackers to install malware that was supposed to have been blocked by an exact version match requirement in package-lock.json. NOTE: The npm team believes this is not a vulnerability. It would require someone to socially engineer package.json which has different dependencies than package-lock.json. That user would have to have file system or write access to change dependencies. The npm team states preventing malicious actors from socially engineering or gaining file system access is outside the scope of the npm CLI.","status":"published","published":"2021-11-13T18:15:00Z","modified":"2026-10-17T12:56:01.364503066Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"},{"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"}],"updated_at":"2026-11-02T15:54:29.220315Z"},{"id":"ALSA-2022:4796","title":"Important: nodejs:16 security update","description":"Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language. \n\nSecurity Fix(es):\n\n* npm: npm ci succeeds when package-lock.json doesn't match package.json (CVE-2021-43616)\n\nFor more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.","status":"published","published":"2022-05-30T07:22:47Z","modified":"2026-10-29T11:01:07.287257464Z","updated_at":"2026-11-02T15:27:51.196609Z"},{"id":"MGASA-2022-0294","title":"Updated nodejs packages fix security vulnerability","description":"The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an\ninstallation even if dependency information in package-lock.json differs\nfrom package.json. This behavior is inconsistent with the documentation,\nand makes it easier for attackers to install malware that was supposed to\nhave been blocked by an exact version match requirement in\npackage-lock.json. (CVE-2021-43616)\n\nDNS rebinding in --inspect via invalid IP addresses (CVE-2022-32212)\n\nHTTP Request Smuggling - Flawed Parsing of Transfer-Encoding\n(CVE-2022-32213)\n\nHTTP Request Smuggling - Improper Delimiting of Header Fields\n(CVE-2022-32214)\n\nHTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding\n(CVE-2022-32215)\n\nAttempt to read openssl.cnf from /home/iojs/build/ upon startup\n(CVE-2022-32222)\n","status":"published","published":"2022-08-25T21:21:07Z","modified":"2026-04-16T04:43:07.822208697Z","updated_at":"2026-11-02T15:49:42.263076Z"}]}}
