LibreNMS w wersjach przed 24.10.0 zawiera podatność typu OS command injection, umożliwiającą uwierzytelnionemu zdalnemu atakującemu wykonanie dowolnego kodu na serwerze. Wysoki wynik CVSS (9.1) oraz dostępny moduł Metasploit czynią tę podatność szczególnie niebezpieczną.
▸ Pokaż oryginał (EN)
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutController.php's index(), SettingsController.php's update(), and PollDevice.php's initRrdDirectory().
Podatność wynika z nieprawidłowej walidacji danych wejściowych w trzech miejscach kodu aplikacji: metodzie index() kontrolera AboutController.php, metodzie update() kontrolera SettingsController.php oraz metodzie initRrdDirectory() klasy PollDevice.php. Atakujący z aktywnym kontem w LibreNMS może dostarczyć spreparowane dane, które są następnie przekazywane do poleceń systemowych bez odpowiedniego oczyszczenia (CWE-78), co prowadzi do wykonania dowolnych poleceń OS na serwerze hostującym aplikację. Dla podatności dostępny jest publiczny moduł exploit w ramach frameworka Metasploit.
Atakujący może wykonać dowolne polecenia systemu operacyjnego w kontekście procesu aplikacji, co może prowadzić do przejęcia kontroli nad serwerem, kradzieży danych, instalacji backdoora lub dalszego lateral movement w sieci.
Należy niezwłocznie zaktualizować LibreNMS do wersji 24.10.0 lub nowszej. Szczegóły patcha dostępne są w oficjalnym security advisory projektu na GitHub (GHSA-x645-6pf9-xwxw). Do czasu aktualizacji zaleca się ograniczenie dostępu do panelu LibreNMS wyłącznie do zaufanych sieci oraz minimalizację liczby kont użytkowników.
LibreNMS we wszystkich wersjach przed 24.10.0
Dla tej podatności istnieje publiczny moduł exploit w Metasploit Framework (modules/exploits/linux/http/librenms_authenticated_rce_cve_2024_51092.rb), co znacząco obniża próg wejścia dla potencjalnych atakujących. Podatność wymaga posiadania aktywnego konta w aplikacji (PR:L), jednak zakres ataku wykracza poza system bazowy (S:C).
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:LLibrenms
APPLibrenms< 24.10.0
Powiązane podatności
SQL Injection w LibreNMS — endpoint ajax_table.php (wyszukiwanie IPv6)
LibreNMS — niewystarczające wygasanie sesji użytkownika (CWE-613)
LibreNMS — wielokrotny command injection w parametrach serwisowych
Path Traversal w LibreNMS – dostęp do arbitralnych plików
LibreNMS — wstrzyknięcie składni RRDtool przez parametry wykresów