Every CVE Search/ Get API key

CVE-2021-43616

The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if...

9.0 CriticalPublic exploitFix availableDisputed

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

2.72%Up 2.1 points since Nov 14, 2021
90%50%10%1%

What each source reports

CVE List Score used 9.0

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.

Record
CVE-2021-43616
CVSS 3.1
9.0 CriticalCVSS:3.1/AC:H/AV:N/A:H/C:H/I:H/PR:N/S:C/UI:N
Updated
2026-11-02
EUVDEUVD-2021-30530 9.0

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.

Record
EUVD-2021-30530
CVSS 3.1
9.0 CriticalCVSS:3.1/AC:H/AV:N/A:H/C:H/I:H/PR:N/S:C/UI:N
Updated
2026-11-03
GitHub AdvisoriesGHSA-ppxp-px5q-gwqm 9.8

The npm ci command in npm 7.x and 8.x through 8.1.3 proceeds with an installation even if...

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.

Record
GHSA-ppxp-px5q-gwqm
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-345
Updated
2026-11-02
NVD 9.0

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.

Record
CVE-2021-43616
CVSS 3.1
9.0 CriticalCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-345
Updated
2026-11-02
OSVALPINE-CVE-2021-43616 9.8

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.

Record
ALPINE-CVE-2021-43616
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-03
OSVBELL-CVE-2021-43616 9.8

CVE-2021-43616 does not affect BellSoft software

Record
BELL-CVE-2021-43616
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
Show 7 moreShow less
OSV 9.8

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.

Record
CVE-2021-43616
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVDEBIAN-CVE-2021-43616 9.8

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.

Record
DEBIAN-CVE-2021-43616
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRHSA-2022:4796 8.1

Red Hat Security Advisory: nodejs:16 security update

Record
RHSA-2022:4796
CVSS 3.1
8.1 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVRLSA-2022:4796 9.8

Important: nodejs:16 security update

Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language.

Security Fix(es):

  • npm: npm ci succeeds when package-lock.json doesn't match package.json (CVE-2021-43616)

For 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.

Record
RLSA-2022:4796
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2021-43616 9.0

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.

Record
UBUNTU-CVE-2021-43616
CVSS 3.1
9.0 CriticalCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVALSA-2022:4796 No score

Important: nodejs:16 security update

Node.js is a software development platform for building fast and scalable network applications in the JavaScript programming language.

Security Fix(es):

  • npm: npm ci succeeds when package-lock.json doesn't match package.json (CVE-2021-43616)

For 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.

Record
ALSA-2022:4796
Updated
2026-11-02
OSVMGASA-2022-0294 No score

Updated nodejs packages fix security vulnerability

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. (CVE-2021-43616)

DNS rebinding in --inspect via invalid IP addresses (CVE-2022-32212)

HTTP Request Smuggling - Flawed Parsing of Transfer-Encoding (CVE-2022-32213)

HTTP Request Smuggling - Improper Delimiting of Header Fields (CVE-2022-32214)

HTTP Request Smuggling - Incorrect Parsing of Multi-line Transfer-Encoding (CVE-2022-32215)

Attempt to read openssl.cnf from /home/iojs/build/ upon startup (CVE-2022-32222)

Record
MGASA-2022-0294
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
npm
Alpine:v3.16
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.17
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.18
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.19
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.20
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.21
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.22
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.23
7.0.0 up to 8.1.4-r0
8.1.4-r0
npm
Alpine:v3.24
7.0.0 up to 8.1.4-r0
8.1.4-r0
nodejs
AlmaLinux:8
before 1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
Show 30 moreShow less
Affected packages
PackageAffectedFixed
nodejs-devel
AlmaLinux:8
before 1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
nodejs-docs
AlmaLinux:8
before 1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
nodejs-full-i18n
AlmaLinux:8
before 1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
1:16.14.0-4.module_el8.6.0+2904+f21ad6f4
nodejs-nodemon
AlmaLinux:8
before 2.0.15-1.module_el8.6.0+2904+f21ad6f4
2.0.15-1.module_el8.6.0+2904+f21ad6f4
nodejs-nodemon
AlmaLinux:8
before 2.0.15-1.module_el8.5.0+2605+45d748af
2.0.15-1.module_el8.5.0+2605+45d748af
nodejs-packaging
AlmaLinux:8
before 25-1.module_el8.5.0+246+05401605
25-1.module_el8.5.0+246+05401605
nodejs-packaging
AlmaLinux:8
before 25-1.module_el8.5.0+2605+45d748af
25-1.module_el8.5.0+2605+45d748af
npm
AlmaLinux:8
before 1:8.3.1-1.16.14.0.4.module_el8.6.0+2904+f21ad6f4
1:8.3.1-1.16.14.0.4.module_el8.6.0+2904+f21ad6f4
npm
Debian:12
before 8.4.1~ds-1
8.4.1~ds-1
npm
Debian:13
before 8.4.1~ds-1
8.4.1~ds-1
npm
Debian:14
before 8.4.1~ds-1
8.4.1~ds-1
nodejs
Mageia:8
before 14.20.0-1.1.mga8
14.20.0-1.1.mga8
nodejs
Red Hat:enterprise_linux:8::appstream
before 1:16.14.0-4.module+el8.6.0+15294+54b291d2
1:16.14.0-4.module+el8.6.0+15294+54b291d2
nodejs-debuginfo
Red Hat:enterprise_linux:8::appstream
before 1:16.14.0-4.module+el8.6.0+15294+54b291d2
1:16.14.0-4.module+el8.6.0+15294+54b291d2
nodejs-debugsource
Red Hat:enterprise_linux:8::appstream
before 1:16.14.0-4.module+el8.6.0+15294+54b291d2
1:16.14.0-4.module+el8.6.0+15294+54b291d2
nodejs-devel
Red Hat:enterprise_linux:8::appstream
before 1:16.14.0-4.module+el8.6.0+15294+54b291d2
1:16.14.0-4.module+el8.6.0+15294+54b291d2
nodejs-docs
Red Hat:enterprise_linux:8::appstream
before 1:16.14.0-4.module+el8.6.0+15294+54b291d2
1:16.14.0-4.module+el8.6.0+15294+54b291d2
nodejs-full-i18n
Red Hat:enterprise_linux:8::appstream
before 1:16.14.0-4.module+el8.6.0+15294+54b291d2
1:16.14.0-4.module+el8.6.0+15294+54b291d2
nodejs-nodemon
Red Hat:enterprise_linux:8::appstream
before 0:2.0.15-1.module+el8.6.0+15294+54b291d2
0:2.0.15-1.module+el8.6.0+15294+54b291d2
nodejs-packaging
Red Hat:enterprise_linux:8::appstream
before 0:25-1.module+el8.5.0+10992+fac5fe06
0:25-1.module+el8.5.0+10992+fac5fe06
npm
Red Hat:enterprise_linux:8::appstream
before 1:8.3.1-1.16.14.0.4.module+el8.6.0+15294+54b291d2
1:8.3.1-1.16.14.0.4.module+el8.6.0+15294+54b291d2
nodejs
Rocky Linux:8
before 1:16.14.0-4.module+el8.6.0+978+59f26232
1:16.14.0-4.module+el8.6.0+978+59f26232
nodejs-nodemon
Rocky Linux:8
before 0:2.0.15-1.module+el8.5.0+721+4c107270
0:2.0.15-1.module+el8.5.0+721+4c107270
nodejs-packaging
Rocky Linux:8
before 0:25-1.module+el8.6.0+1046+80feca58
0:25-1.module+el8.6.0+1046+80feca58
nodejs-packaging
Rocky Linux:8
before 0:25-1.module+el8.5.0+702+221f14e6
0:25-1.module+el8.5.0+702+221f14e6
npm
Ubuntu:22.04:LTS
All versions, plus listed versions
7.5.2+ds-27.24.2+ds-17.24.2+ds-28.3.0~ds-18.3.0~ds-28.3.2~ds-18.5.0~ds-18.5.1~ds-1
None known
npm
Ubuntu:24.04:LTS
All versions, plus listed versions
9.2.0~ds1-19.2.0~ds1-2
None known
npm
Ubuntu:25.10
All versions, plus listed versions
9.2.0~ds1-3
None known
npm
Ubuntu:26.10
All versions, plus listed versions
9.2.0~ds3-111.16.0+ds2-4
None known
npm
Ubuntu:26.04:LTS
All versions, plus listed versions
9.2.0~ds1-39.2.0~ds2-29.2.0~ds3-1
None known

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubicatalina/CVE-2021-436162021-11-15

History

History
RecordedChangedSources
affected, aliases, referencesOSV
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2021-43616 is a critical vulnerability (CVSS 9.0) in Npmjs Npm, published November 13, 2021. Its validity is disputed. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 2.72%, the 86th percentile. Fixed in npm 8.1.4-r0.

References

Show 26 moreShow less
MoveEnter Open