Skip to main content
CRITICAL

CVE-2021-43616

CVSS v3

9.8

CRITICAL

EPSS Score

2.7 %

exploit probability, as of 2026-10-19

CISA KEV

No

known exploited

Exploitation

—

SSVC status

Get an alert for each new CVE published for npm.

Set up CVE WatchFree account · no credit card

Affected and fixed versions

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • nodejsAlmaLinux:8all versions · fixed in 1:16.14.0-4.module_el8.6.0+2904+f21ad6f4and 3 other packages
  • nodejs-nodemonAlmaLinux:8all versions · fixed in 2.0.15-1.module_el8.5.0+2605+45d748af
  • nodejs-packagingAlmaLinux:8all versions · fixed in 25-1.module_el8.5.0+2605+45d748af
  • npmAlmaLinux:8all versions · fixed in 1:8.3.1-1.16.14.0.4.module_el8.6.0+2904+f21ad6f4

Vendor advisories

  • CVE-2021-43616 Red Hat Product Security30 products fixed

    npm: npm ci succeeds when package-lock.json doesn't match package.json

  • RHSA-2022:4796 Red Hat Product Security30 products fixed

    Red Hat Security Advisory: nodejs:16 security update

Full record on NVD

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.

Technical details

Published
2021-11-13

Frequently asked questions

What is CVE-2021-43616?

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.

Is CVE-2021-43616 actively exploited?

Active exploitation of CVE-2021-43616 has not been confirmed. Its EPSS score was 2.7% on 2026-10-19, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2021-43616?

CVE-2021-43616 has a CVSS v3 base score of 9.8 (CRITICAL severity).

Running npm? Hear about its next vulnerability

CVE Watch matches each new CVE to the vendors and products you list (vendor and product, not the version) and puts it in your alerts with its KEV and EPSS status.

Already have an account? Open CVE WatchNo credit card required · No monthly cap on website lookups · 250 API requests/month