7.5 HIGH
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): Present (P)
- Privileges Required (PR): None (N)
- User Interaction (UI): Active (A)
- Vulnerable System Impact Confidentiality (VC): High (H)
- Vulnerable System Impact Integrity (VI): High (H)
- Vulnerable System Impact Availability (VA): High (H)
- Subsequent System Impact Confidentiality (SC): None (N)
- Subsequent System Impact Integrity (SI): None (N)
- Subsequent System Impact Availability (SA): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): Present (P)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): Active (A)
- Modified Vulnerable System Impact Confidentiality (MVC): High (H)
- Modified Vulnerable System Impact Integrity (MVI): High (H)
- Modified Vulnerable System Impact Availability (MVA): High (H)
- Modified Subsequent System Impact Confidentiality (MSC): Negligible (N)
- Modified Subsequent System Impact Integrity (MSI): Negligible (N)
- Modified Subsequent System Impact Availability (MSA): Negligible (N)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
by @LeSuisse Activity log
- Created suggestion
- @LeSuisse dismissed (not in Nixpkgs)
nvm executes commands from a malicious Node.js mirror's version strings
nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings supplied by the configured Node.js/io.js mirror. Commands such as `nvm install` read the available versions from the mirror's index.tab and use the selected version, without sanitization, to build download URLs and shell/awk commands. Two sinks are affected by the same untrusted input: nvm_download() built a curl/wget command string and ran it with `eval`, so a version field containing command substitution (for example $(id)) was executed by the local shell; and nvm_get_checksum() interpolated the version-derived download slug into an awk program, so a crafted version could execute arbitrary commands via awk's system(). An attacker who controls the configured mirror, supplies mirror content to a user or CI on a non-default mirror, or machine-in-the-middles a non-TLS mirror can ∴ run arbitrary commands with the privileges of the user running nvm. The default mirror (https://nodejs.org over TLS) is not affected. Fixed on master (pending the next tagged release) by passing every argument as a literal argv element instead of using eval, by passing the value to awk as data via -v instead of interpolating it into the program, and by rejecting any version outside the Node.js/io.js version grammar before it is used.
References
Affected products
- =<0.40.4
Matching in nixpkgs
pkgs.convmv
Converts filenames from one encoding to another
pkgs.krunvm
CLI-based utility for creating microVMs from OCI images
pkgs.libnvme
C Library for NVM Express on Linux
pkgs.nvme-rs
Lightweight tool for monitoring NVMe drive health with email alerts
pkgs.openvmm
Modular, cross-platform Virtual Machine Monitor (VMM), written in Rust
-
nixos-unstable 0-unstable-2025-03-13
- nixpkgs-unstable 0-unstable-2025-03-13
- nixos-unstable-small 0-unstable-2025-03-13
-
nixos-26.05 0-unstable-2025-03-13
- nixos-26.05-small 0-unstable-2025-03-13
- nixpkgs-26.05-darwin 0-unstable-2025-03-13
pkgs.nvme-cli
NVM-Express user space tooling for Linux
pkgs.nvmetcfg
NVMe-oF Target Configuration Utility for Linux
pkgs.nvmet-cli
NVMe target CLI
pkgs.crc64fast-nvme
SIMD accelerated carryless-multiplication CRC-64/NVME checksum computation (based on Intel's PCLMULQDQ paper)
pkgs.fishPlugins.nvm
Node.js version manager you'll adore, crafted just for Fish
pkgs.python313Packages.pynvml
Unofficial Python bindings for the NVIDIA Management Library
pkgs.python314Packages.pynvml
Unofficial Python bindings for the NVIDIA Management Library
pkgs.python313Packages.py3nvml
Python 3 Bindings for the NVIDIA Management Library
-
nixos-unstable py3nvml-0.2.7
- nixpkgs-unstable py3nvml-0.2.7
- nixos-unstable-small py3nvml-0.2.7
-
nixos-26.05 py3nvml-0.2.7
- nixos-26.05-small py3nvml-0.2.7
- nixpkgs-26.05-darwin py3nvml-0.2.7
pkgs.python314Packages.py3nvml
Python 3 Bindings for the NVIDIA Management Library
-
nixos-unstable py3nvml-0.2.7
- nixpkgs-unstable py3nvml-0.2.7
- nixos-unstable-small py3nvml-0.2.7
-
nixos-26.05 py3nvml-0.2.7
- nixos-26.05-small py3nvml-0.2.7
- nixpkgs-26.05-darwin py3nvml-0.2.7
Package maintainers
-
@al3xtjames Alex James <nix@alextjam.es>
-
@powwu powwu <hello@powwu.sh>
-
@GaetanLepage Gaetan Lepage <gaetan@glepage.com>
-
@prusnak Pavol Rusnak <pavol@rusnak.io>
-
@samuela Samuel Ainsworth <skainsworth@gmail.com>
-
@SomeoneSerge Else Someone <else+nixpkgs@someonex.net>
-
@YorikSar Yuriy Taraday <yorik.sar@gmail.com>
-
@ConnorBaker Connor Baker <ConnorBaker01@gmail.com>
-
@pta2002 Pedro Alves <pta2002@pta2002.com>
-
@NickCao Nick Cao <nickcao@nichi.co>
-
@vifino Adrian Pistol <vifino@tty.sh>
-
@Mic92 Jörg Thalheim <joerg@thalheim.io>
-
@liberodark liberodark <liberodark@gmail.com>
-
@Hoverbear Ana Hobden <operator+nix@hoverbear.org>
-
@astro Astro <astro@spaceboyz.net>
-
@happysalada Raphael Megzari <raphael@megzari.com>
-
@bcdarwin Ben Darwin <bcdarwin@gmail.com>