CVE-2026-116576
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Wstrzyknięte polecenie może odczytywać lub modyfikować pliki, zmieniać dane aplikacji lub zakłócać działanie usługi; zasięg zależy od tego, czy aplikacja przekazuje dane atakującego do services() lub getDynamicData().
Rekomendacja
Zaktualizuj systeminformation do wersji 5.33.16 lub nowszej i unikaj przekazywania niezaufanych danych do services()/getDynamicData().
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-50289Wysokie
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ń.
- 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.33.16, services() in lib/processes.js inserts a caller-supplied service name into a PowerShell Get-CimInstance filter after processing it with sanitizeShellString() in lib/util.js. On Windows, the sanitizer removes ASCII quotes but permits Unicode quotation marks that PowerShell accepts as string delimiters, allowing crafted input to terminate the filter and place a PowerShell expression in the command executed by util.powerShell(). The expression runs with the Node.js process account's permissions and may read or change accessible files, alter application data, or disrupt the service. The package does not expose a network service itself, so remote reachability depends on a consuming application forwarding attacker-controlled input to services() or getDynamicData(). This issue is fixed in version 5.33.16.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

