CVE-2026-48687
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 74 - wyżej niż 74% wszystkich znanych CVE
Streszczenie
FastNetMon Community Edition do wersji 1.2.9 zawiera podatność na wstrzykiwanie poleceń systemu operacyjnego w pluginie integracji z routerami Juniper. Funkcja _log() w pliku src/juniper_plugin/fastnetmon_juniper.php (linie 117-118) konstruuje polecenia powłoki poprzez konkatenację parametru $msg bezpośrednio w wywołaniach exec(). Parametr $msg zawiera niesanetyzowane dane pochodzące z argumentów wiersza poleceń argv[1] do argv[3], reprezentujących adres IP ataku, kierunek i siłę.
Ocena ryzyka
Ryzyko polega na możliwości zdalnego wykonania dowolnych poleceń systemowych przez atakującego, jeśli skrypt zostanie wywołany bezpośrednio, przez inny system orkiestracji lub w wyniku przyszłych zmian w kodzie przekazujących adresy IP z ciągów znaków. Może to prowadzić do pełnego przejęcia serwera i naruszenia poufności, integralności oraz dostępności danych.
Rekomendacja
Należy natychmiast zaktualizować FastNetMon do wersji 1.2.10 lub nowszej, która zawiera poprawkę. Jeśli aktualizacja nie jest możliwa, należy zastąpić wywołania exec() funkcją file_put_contents() lub zastosować escapeshellarg() na wszystkich parametrach przekazywanych do powłoki.
Oryginalny opis (angielski, źródło NVD)
FastNetMon Community Edition through 1.2.9 contains an OS command injection vulnerability in the Juniper router integration plugin. The _log() function in src/juniper_plugin/fastnetmon_juniper.php (lines 117-118) constructs shell commands by concatenating the $msg parameter directly into exec() calls: exec("echo `date` \"- {FASTNETMON] - " . $msg . " \" >> " . $FILE_LOG_TMP). The $msg variable contains unsanitized data derived from command-line arguments argv[1] through argv[3], which represent the attack IP address, direction, and power. While FastNetMon's C++ core currently passes IP addresses via inet_ntoa() (which only produces safe dotted-decimal notation), the PHP script performs no input validation or shell escaping. If the script is invoked directly, by another orchestration system, or if future code changes pass string-sourced IPs, arbitrary commands can be injected. The correct fix is to replace exec() with file_put_contents() or use escapeshellarg() on all parameters.

