CVE-2026-15921
NiskieCVSS 3.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
Podatność w Node Version Manager (nvm) w wersjach 0.32.1 do 0.40.5 pozwala na zapis pliku aliasu poza katalogiem $NVM_DIR/alias. Złośliwe lustro może zwrócić nazwę LTS zawierającą sekwencję typu "../../../.bashrc", co prowadzi do nadpisania plików startowych powłoki i potencjalnego wykonania kodu.
Ocena ryzyka
Atakujący może przejąć kontrolę nad sesją powłoki ofiary poprzez nadpisanie plików startowych (np. .bashrc), co umożliwia wykonanie dowolnego kodu przy następnym logowaniu. Ryzyko jest szczególnie wysokie w środowiskach z niezaufanymi mirrorami lub przy ataku MITM.
Rekomendacja
Niezwłocznie zaktualizuj nvm do wersji 0.40.6 lub nowszej. Upewnij się, że używane mirror (NVM_NODEJS_ORG_MIRROR) jest zaufany i połączony przez HTTPS.
Inne podatności w nvm
Zobacz wszystkie- CVE-2026-118905Wysokie
W nvm w wersjach 0.31.2 do 0.40.5 funkcja nvm_ls filtruje zainstalowane wersje programem sed, który osadza wzorzec wersji w adresie \#...#, eskalując kropkę i #, ale nie backslash. Ciąg wersji zawierający # zamyka adres przedwcześnie, a reszta jest interpretowana jako polecenia sed, co w GNU sed pozwala na wykonanie polecenia powłoki, a w BSD sed na zapis i odczyt plików.
- CVE-2026-94185Średnie
nvm przed wersją 0.40.8 podatny jest na path traversal w nvm_alias(), gdzie nazwa wersji lub aliasu traktowana jest jako ścieżka pod $NVM_DIR/alias bez sprawdzenia zawartości. Nazwa zawierająca '..' pozwala odczytać pierwszy niekomentarzowy wiersz dowolnego pliku czytelnego dla użytkownika, np. przez .nvmrc w niezaufanym repozytorium. Brak wpływu na integralność i dostępność, brak wykonania kodu.
- CVE-2026-10796Wysokie
nvm (Node Version Manager) do wersji 0.40.4 wykonuje dowolne polecenia z ciągów wersji dostarczonych przez skonfigurowane lustro Node.js/io.js. Atakujący kontrolujący lustro lub przeprowadzający atak man-in-the-middle na niezabezpieczone połączenie może uruchomić dowolne polecenia w systemie ofiary.
Oryginalny opis (angielski, źródło NVD)
Node Version Manager (nvm) is a POSIX-compliant shell function for managing multiple node.js versions. In versions 0.32.1 through 0.40.5, `nvm ls-remote` (and other commands that refresh remote LTS aliases, such as `nvm install --lts`) parse the node.js mirror's `index.tab` and use each release's LTS codename field as an alias filename without validating it. A malicious, compromised, or man-in-the-middled mirror can return an LTS codename containing path-traversal sequences such as `../../../.bashrc`, causing nvm to write the associated version string to a path outside `$NVM_DIR/alias`. With the default layout (`$NVM_DIR` is `~/.nvm`), this can create or overwrite files in the user's home directory, including shell startup files, which can lead to code execution in a later shell session. Exploitation requires the victim to use a hostile mirror -- via a compromised mirror or CDN, a network man-in-the-middle, or a maliciously configured `NVM_NODEJS_ORG_MIRROR`/`NVM_IOJS_ORG_MIRROR` -- and to run an affected command. Version 0.40.6 validates remote LTS codenames as safe alias filenames and rejects `..` path components when writing alias files.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

