CVE-2026-116673
NiskieCVSS 3.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Luka pozwala na ograniczone ujawnienie informacji z plików dostępnych dla procesu Node.js, ale wymaga lokalnego przygotowania systemu plików i kontroli parametru wejściowego, co ogranicza realne ryzyko w typowych wdrożeniach.
Rekomendacja
Zaktualizuj bibliotekę systeminformation do wersji 5.33.14 lub nowszej oraz unikaj przekazywania niezaufanych wartości do parametru `iface` w `networkStats()`.
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-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-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.14, the Linux networkStats(iface) implementation uses the caller-supplied interface value in an fs.existsSync() check and to build /sys/class/net/<iface> paths, including the operstate path, without verifying that it is a single interface-name segment or that the resolved path remains under /sys/class/net. An attacker who can control iface and create a directory containing symlinked statistics files can use parent-directory components and symlink traversal to make the API return the first line of a file readable by the Node.js process. The package does not expose a network endpoint, and the demonstrated scenario requires local filesystem setup. This issue is fixed in version 5.33.14.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

