CVE-2026-116674
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Zanieczyszczenie prototypu może prowadzić do nieprzewidywalnego zachowania aplikacji, błędów walidacji lub wycieku danych. Może to osłabić bezpieczeństwo aplikacji korzystających z tej biblioteki.
Rekomendacja
Zaktualizuj bibliotekę systeminformation do wersji 5.33.13 lub nowszej. Dodatkowo rozważ walidację i sanityzację nazw interfejsów przekazywanych do 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-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-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.13, networkStats(ifaces) in lib/network.js on FreeBSD, OpenBSD, and NetBSD stores per-interface data in the plain-object _network cache and indexes it with the sanitized caller-controlled interface name. Passing proto causes the inherited Object.prototype value to be used instead of creating an own cache entry, so calcNetworkSpeed() writes rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms, and operstate onto Object.prototype. The polluted property names are fixed and their values come from interface statistics, but inherited-name collisions and enumerable keys can corrupt application branching, serialization, configuration merging, validation, or lookup behavior. This issue is fixed in version 5.33.13.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

