← Wszystkie CVE
CVE-2026-40456 PUBLISHED HIGH 8.6
Opublikowano: 18 czerwca 2026

Zgłaszający według advisory CERT Polska: Tymoteusz Dominik

OS Command Injection in LMS live traffic helper IP handling

Podsumowanie

LMS przed commitem 9fcb4de przekazywał parametr adresu IP do helpera live traffic uruchamianego przez exec(). Przy aktywnej konfiguracji phpui.live_traffic_helper brak walidacji IP pozwalał użyć wartości wejściowej przy budowie polecenia systemowego.

Szczegóły techniczne

CWE CWE-78: OS Command Injection
Wektor CVSS CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:N
Wynik CVSS 8.6 HIGH
Uprawnienia atakującego (PR) Wymagane
Warunki eksploatacji Wymagana konfiguracja phpui.live_traffic_helper, niskie uprawnienia w LMS (PR:L), dostęp do właściwego interfejsu oraz osiągalność komponentu zgodna z AV:A; interakcja użytkownika nie jest wymagana (UI:N).
Podatne wersje LMS przed commitem 9fcb4de
Poprawka dostępna od commit 9fcb4de

Przepływ danych i poprawka

Source
parametr IP przekazany do getThroughput($ip)
Miejsca
modules/netdevxajax.inc.php oraz modules/nodexajax.inc.php
Warunek
skonfigurowany phpui.live_traffic_helper
Transformacja
podstawienie IP do komendy helpera przez placeholder %i
Sink
exec() po stronie PHP
Fix
check_ip($ip) przed złożeniem i wykonaniem komendy
Ograniczenie CVSS
AV:A, PR:L, UI:N - wymagane niskie uprawnienia, aktywny helper i osiągalność właściwego komponentu

Oś czasu

przed publikacją Zgłoszenie podatności do CERT Polska
18 czerwca 2026 Publikacja advisory CERT Polska
18 czerwca 2026 Publikacja rekordu CVE-2026-40456 i danych CVSS v4

CVE-2026-40456: command injection przez helper live traffic w LMS

Opis podatności

CVE-2026-40456 dotyczyło obsługi adresu IP przekazywanego do funkcji live traffic w LMS. W podatnych wersjach, sprzed commita 9fcb4de, wartość wejściowa mogła zostać użyta przy budowie polecenia systemowego uruchamianego przez exec().

Istotny jest warunek konfiguracyjny: wektor miał znaczenie wtedy, gdy w LMS była ustawiona opcja phpui.live_traffic_helper. W tej konfiguracji ścieżka getThroughput($ip) w modules/netdevxajax.inc.php i modules/nodexajax.inc.php korzystała z helpera, a przekazany adres IP był podstawiany do komendy wykonywanej przez exec().

Od parametru do exec()

Przepływ wyglądał tak:

  • do funkcji getThroughput($ip) trafiał parametr IP
  • konfiguracja phpui.live_traffic_helper dostarczała komendę helpera
  • IP było podstawiane do komendy w miejscu placeholdera %i
  • finalnie uruchamiane było exec()

Jeżeli wartość nie jest sprawdzona jako adres IP przed podstawieniem do helpera, dane wejściowe mogą zostać potraktowane jako część komendy wykonywanej przez exec(). To jest bezpośrednie miejsce ryzyka dla command injection.

CVSS v4 to 8.6 HIGH z AV:A/PR:L/UI:N. Podatność pozwalała na wykonanie komend systemowych, ale opis warunków powinien uwzględniać wymagane niskie uprawnienia, osiągalność zgodną z AV:A, aktywną konfigurację phpui.live_traffic_helper oraz uprawnienia procesu PHP.

Patch

Commit 9fcb4de dodaje check_ip($ip) przed uruchomieniem helpera. Jeżeli wartość nie przechodzi walidacji adresu IP, kod kończy obsługę zamiast składać i wykonywać komendę.

Poprawka zamyka zgłoszony wektor przez odrzucenie wartości, które nie są poprawnym adresem IP. W podobnym kodzie każda granica między aplikacją a shellem powinna mieć osobną walidację wejścia, kontrolowany sposób przekazywania argumentów i możliwie mało składania poleceń z danych użytkownika.