CVE-2026-84194
WysokieCVSS 8.6Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 71 - wyżej niż 71% wszystkich znanych CVE
Streszczenie
LibreNMS w wersjach >= 23.10.0 i < 26.2.0 (naprawione w 26.4.0) zawiera uwierzytelnioną podatność na wstrzykiwanie poleceń systemu operacyjnego w wykrywaniu libvirt. Gdy obsługa libvirt jest włączona (enable_libvirt=true), nazwa hosta urządzenia ($this->getDevice()->hostname) jest łączona z poleceniami powłoki (ssh, virsh list/dumpxml/domstate) w VminfoLibvirt.php i przekazywana do exec() bez escapeshellarg() lub separacji argumentów. Uwierzytelniony administrator może ustawić spreparowaną nazwę hosta urządzenia, aby wstrzyknąć dowolne polecenia systemu operacyjnego, co prowadzi do zdalnego wykonania kodu w kontekście procesu odkrywania.
Ocena ryzyka
Atakujący z uprawnieniami administratora może wykonać dowolne polecenia na serwerze, co może prowadzić do pełnej kompromitacji systemu i naruszenia danych.
Rekomendacja
Zaktualizuj LibreNMS do wersji 26.4.0 lub nowszej. Ogranicz uprawnienia administratora i waliduj nazwy hostów urządzeń.
Inne podatności w LibreNMS
Zobacz wszystkie- CVE-2026-86426Krytyczne
LibreNMS przed wersją 26.8.0 zawiera podatność na ominięcie uwierzytelniania w REST API, która pozwala nieuwierzytelnionym atakującym na dostęp do chronionych punktów końcowych poprzez wysyłanie wartości numerycznych zamiast tokenów tekstowych. Atakujący mogą wykorzystać koercję typów w MySQL, wysyłając małe liczby całkowite, takie jak 0-9, aby dopasować hasze tokenów, uzyskując dostęp do funkcji API, w tym do poświadczeń urządzeń i funkcji administracyjnych, które umożliwiają zdalne wykonanie kodu przez szablony alertów.
- CVE-2024-51092Krytyczne
LibreNMS w wersjach przed 24.10.0 umożliwia zdalnemu atakującemu wykonanie dowolnego kodu poprzez wstrzyknięcie poleceń systemowych w metodach index() w AboutController.php, update() w SettingsController.php oraz initRrdDirectory() w PollDevice.php.
- CVE-2025-68614Średnie
LibreNMS w wersjach przed 25.12.0 zawiera podatność przechowywanego skryptu cross-site (XSS) w API reguł alertów. Reguły alertów można tworzyć lub aktualizować przez API LibreNMS, a nazwa reguły nie jest prawidłowo sanityzowana, co pozwala na wstrzyknięcie kodu HTML. Problem naprawiono w wersji 25.12.0.
- CVE-2025-65093Średnie
LibreNMS w wersjach przed 25.11.0 zawiera podatność blind SQL injection opartą na wartościach logicznych w punkcie końcowym /ajax_output.php. Parametr hostname jest wstawiany bezpośrednio do zapytania SQL bez odpowiedniej sanityzacji lub wiązania parametrów, co pozwala atakującemu manipulować logiką zapytania i wnioskować dane z bazy poprzez warunkowe odpowiedzi. Problem naprawiono w wersji 25.11.0.
- CVE-2025-62411Średnie
LibreNMS w wersjach do 25.8.0 zawiera podatność Stored XSS w funkcjonalności zarządzania Alert Transports. Wartość pola nazwy Transportu jest zapisywana i później wyświetlana w kolumnie Transports na stronie Alert Rules bez walidacji i kodowania wyjścia, co prowadzi do wykonania dowolnego JavaScriptu w przeglądarce administratora. Podatność naprawiono w wersji 25.10.0.
- CVE-2026-109357Wysokie
LibreNMS przed 26.9.0 zawiera podatność na wstrzyknięcie filtra LDAP w trybach ldap-authorization i ad-authorization, ponieważ nazwy użytkowników są wstawiane bez escapowania do filtrów wyszukiwania LDAP, a uwierzytelnianie sprawdza tylko istnienie użytkownika. Gdy REMOTE_USER nie jest przekazywany, nieuwierzytelnieni atakujący mogą wysłać nazwę użytkownika z wildcardem przez HTTP Basic Authorization (PHP_AUTH_USER), aby dopasować wszystkich użytkowników i grupy i uzyskać dostęp administratora.
- CVE-2026-109356Średnie
LibreNMS przed wersją 26.9.0 zawiera brak autoryzacji w PortsController::purge, co pozwala użytkownikom z globalnym dostępem do odczytu na fizyczne usuwanie portów bez uprawnień do usuwania. Atakujący z kontami tylko do odczytu mogą wysyłać żądania DELETE do /ports/purge, używając purge=all, aby nieodwracalnie usunąć wszystkie usunięte porty na wszystkich widocznych urządzeniach.
- CVE-2026-109355Średnie
LibreNMS przed wersją 26.9.0 zawiera podatność na trwały cross-site scripting w funkcji get_oxidized_nodes_list(), która renderuje pola API Oxidized i SNMP sysName bez odpowiedniego escapowania. Atakujący kontrolujący odpowiedź Oxidized lub sysName urządzenia mogą wstrzyknąć skrypt, który wykonuje się w przeglądarkach użytkowników odwiedzających stronę Tools Oxidized.
- CVE-2026-109354Średnie
LibreNMS przed wersją 26.9.0 zawiera podatność na path traversal w pliku nfsen_channel_common.inc.php, która pozwala uwierzytelnionym użytkownikom czytać nieautoryzowane dane RRD poprzez wstrzyknięcie sekwencji ../ do parametru channel. Atakujący z dostępem do jednego urządzenia z włączonym NFSen mogą wysłać żądanie do graph.php z przekroczoną wartością channel, aby przeglądać wykresy ruchu i NetFlow urządzeń spoza ich autoryzowanego zakresu.
- CVE-2026-109353Wysokie
LibreNMS przed 26.9.0 zawiera podatność na wstrzyknięcie SQL, która pozwala nieuprzywilejowanym użytkownikom na wstrzyknięcie SQL poprzez dostarczenie parametru notification_id w postaci tablicy do notifications.inc.php. Atakujący mogą przeprowadzać odczyty między tabelami, w tym hashy haseł użytkowników, a wyniki są zapisywane w notifications_attribs i czytelne przez interfejs.
Oryginalny opis (angielski, źródło NVD)
LibreNMS versions >= 23.10.0 and < 26.2.0 (fixed in 26.4.0) contain an authenticated OS command injection vulnerability in libvirt discovery. When libvirt support is enabled (enable_libvirt=true), the device hostname ($this->getDevice()->hostname) is concatenated into shell commands (ssh, virsh list/dumpxml/domstate) in VminfoLibvirt.php and passed to exec() without escapeshellarg() or argument separation. An authenticated admin can set a crafted device hostname to inject arbitrary OS commands, leading to remote code execution in the discovery worker context.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

