CVE-2026-50289
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 89 - wyżej niż 89% wszystkich znanych CVE
Streszczenie
Biblioteka systeminformation dla Node.js przed wersją 5.31.7 jest podatna na wstrzyknięcie poleceń systemu operacyjnego przez funkcję networkInterfaces() na Linuksie. Problem wynika z nieprawidłowego przetwarzania dyrektywy source w plikach konfiguracyjnych sieci, co pozwala na wykonanie dowolnych poleceń.
Ocena ryzyka
Atakujący może zdalnie wykonać dowolne polecenia systemowe w procesie wywołującym networkInterfaces(), co może prowadzić do przejęcia kontroli nad aplikacją i serwerem.
Rekomendacja
Należy zaktualizować bibliotekę systeminformation do wersji 5.31.7 lub nowszej.
Inne podatności w systeminformation
Zobacz wszystkie- CVE-2021-21315WysokieAktywnie exploitowane
Biblioteka systeminformation dla Node.js w wersji przed 5.3.1 zawiera podatność na wstrzyknięcie poleceń. Problem został naprawiony w wersji 5.3.1.
- CVE-2026-116674Średnie
W bibliotece systeminformation funkcja networkStats(ifaces) w lib/network.js na systemach FreeBSD, OpenBSD i NetBSD przechowuje dane interfejsów w obiekcie _network i indeksuje je oczyszczoną nazwą interfejsu kontrolowaną przez wywołującego. Przekazanie wartości proto powoduje użycie odziedziczonej wartości Object.prototype zamiast utworzenia własnego wpisu, przez co calcNetworkSpeed() zapisuje właściwości rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms i operstate na Object.prototype. Zanieczyszczone nazwy właściwości są stałe, a wartości pochodzą ze statystyk interfejsów, ale kolizje nazw i wyliczalne klucze mogą zaburzyć logikę aplikacji, serializację, scalanie konfiguracji, walidację lub wyszukiwanie; naprawiono w wersji 5.33.13.
- CVE-2026-116673Niskie
W bibliotece systeminformation dla Node.js w wersjach przed 5.33.14 implementacja `networkStats(iface)` używa wartości interfejsu podanej przez wywołującego w sprawdzeniu `fs.existsSync()` oraz do budowania ścieżek `/sys/class/net/<iface>`, bez weryfikacji, że jest to pojedynczy segment nazwy interfejsu ani że rozwiązana ścieżka pozostaje w `/sys/class/net`. Atakujący kontrolujący parametr `iface` może wykorzystać komponenty katalogu nadrzędnego i przejście przez dowiązania symboliczne, aby uzyskać pierwszą linię pliku czytelnego dla procesu Node.js. Wymaga to lokalnej konfiguracji systemu plików; problem naprawiono w wersji 5.33.14.
- CVE-2026-116576Wysokie
W bibliotece systeminformation przed wersją 5.33.16 funkcja services() w lib/processes.js wstawia nazwę usługi podaną przez wywołującego do filtra PowerShell Get-CimInstance po oczyszczeniu przez sanitizeShellString(). Na Windows sanityzator usuwa cudzysłowy ASCII, ale dopuszcza znaki cudzysłowów Unicode akceptowane przez PowerShell, co pozwala wstrzyknąć wyrażenie PowerShell wykonane przez util.powerShell() z uprawnieniami konta procesu Node.js.
- CVE-2026-44724Wysokie
Biblioteka systeminformation dla Node.js w wersjach od 4.17.0 do 5.31.5 zawiera podatność na wstrzyknięcie poleceń w funkcji networkInterfaces() na systemie Linux. Problem występuje, gdy aktywna nazwa profilu połączenia Network Managera zawiera znaki specjalne powłoki, które nie są odpowiednio sanityzowane przed użyciem w poleceniach powłoki.
- CVE-2026-26318Wysokie
Biblioteka systeminformation dla Node.js przed wersją 5.31.0 zawiera podatność na wstrzyknięcie poleceń przez niesanitowane dane wyjściowe funkcji `locate` w metodzie `versions()`. Atakujący może wykorzystać tę lukę do wykonania dowolnych poleceń systemowych.
- CVE-2026-26280Wysokie
Biblioteka systeminformation dla Node.js zawiera podatność na wstrzykiwanie poleceń w funkcji `wifiNetworks()`. W kodzie ponawiania skanowania sieci Wi-Fi parametr `iface` nie jest sanityzowany, co pozwala atakującemu na wykonanie dowolnych poleceń systemowych.
Oryginalny opis (angielski, źródło NVD)
systeminformation is a System and OS information library for node.js. Prior to 5.31.7, networkInterfaces() on Linux is vulnerable to OS command injection through the Debian/Ubuntu interfaces(5) source directive because lib/network.js checkLinuxDCHPInterfaces() reads /etc/network/interfaces, extracts a source <path> token from file content, and interpolates it unquoted into cat ${file} 2> /dev/null | grep 'iface\|source' executed by execSync(cmd, util.execOptsLinux), allowing a path containing shell metacharacters to execute commands in any process that calls networkInterfaces(), including via getStaticData() and getAllData(). This issue is fixed in version 5.31.7.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

