W LibreNMS do wersji 1.47 skrypty obsługujące wykresy nie walidują wystarczająco danych wejściowych użytkownika, co umożliwia wstrzyknięcie składni RRDtool za pomocą znaków nowej linii. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia i może prowadzić do ujawnienia danych, zapisu dowolnych plików lub odmowy usługi.
▸ Pokaż oryginał (EN)
An issue was discovered in LibreNMS through 1.47. The scripts that handle the graphing options (html/includes/graphs/common.inc.php and html/includes/graphs/graphs.inc.php) do not sufficiently validate or encode several fields of user supplied input. Some parameters are filtered with mysqli_real_escape_string, which is only useful for preventing SQL injection attacks; other parameters are unfiltered. This allows an attacker to inject RRDtool syntax with newline characters via the html/graph.php script. RRDtool syntax is quite versatile and an attacker could leverage this to perform a number of attacks, including disclosing directory structure and filenames, file content, denial of service, or writing arbitrary files.
Skrypty html/includes/graphs/common.inc.php oraz html/includes/graphs/graphs.inc.php nie filtrują poprawnie wszystkich parametrów przekazywanych przez użytkownika. Część parametrów jest zabezpieczona funkcją mysqli_real_escape_string, która chroni jedynie przed SQL injection, natomiast pozostałe parametry są całkowicie niefiltrowane. Atakujący może przez skrypt html/graph.php wstrzyknąć dodatkowe polecenia RRDtool, osadzając znaki nowej linii w parametrach zapytania. Składnia RRDtool jest elastyczna, co pozwala atakującemu na wykonanie szerokiego spektrum działań.
Atakujący bez uwierzytelnienia może ujawnić strukturę katalogów i nazwy plików, odczytać zawartość plików, zapisać dowolne pliki w systemie lub doprowadzić do odmowy usługi (DoS).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się aktualizację LibreNMS do wersji wyższej niż 1.47 oraz ograniczenie dostępu do interfejsu webowego wyłącznie do zaufanych sieci.
LibreNMS w wersjach do 1.47 włącznie.
Podatność została opisana przez Xen1thlabs (DarkMatter) pod identyfikatorem XL-19-023. Szczegóły techniczne dostępne są w referencjach producenta raportu.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLibrenms
APPLibrenms≤ 1.47
Powiązane podatności
LibreNMS — zdalne wykonanie kodu przez OS command injection (RCE)
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