Description
Versions of the npm CLI prior to 6.13.4 are vulnerable to an Arbitrary File Overwrite. It fails to prevent existing globally-installed binaries to be overwritten by other package installations. For example, if a package was installed globally and created a serve binary, any subsequent installs of packages that also create a serve binary would overwrite the previous serve binary. This behavior is still allowed in local installations and also through install scripts. This vulnerability bypasses a user using the --ignore-scripts install option.
Remediation
References
http://lists.opensuse.org/opensuse-security-announce/2020-01/msg00027.html
https://access.redhat.com/errata/RHEA-2020:0330
https://access.redhat.com/errata/RHSA-2020:0573
https://access.redhat.com/errata/RHSA-2020:0579
https://access.redhat.com/errata/RHSA-2020:0597
https://access.redhat.com/errata/RHSA-2020:0602
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli
https://github.com/npm/cli/security/advisories/GHSA-4328-8hgf-7wjr
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/Z36UKPO5F3PQ3Q2POMF5LEKXWAH5RUFP/
https://security.gentoo.org/glsa/202003-48
https://www.oracle.com/security-alerts/cpujan2020.html
Related Vulnerabilities
CVE-2018-16487 Vulnerability in npm package lodash.mergewith
CVE-2023-50767 Vulnerability in maven package org.sonatype.nexus.ci:nexus-jenkins-plugin
CVE-2018-18950 Vulnerability in maven package org.webjars.bowergithub.kindsoft:kindeditor
CVE-2019-0205 Vulnerability in maven package org.webjars.npm:thrift
CVE-2021-36151 Vulnerability in maven package org.apache.gobblin:gobblin-core