Security Research
Publicznie ujawnione podatności zgłoszone w ramach responsible disclosure. Opisuję root cause, warunki eksploatacji i poprawki, bez publikowania payloadów ani instrukcji nadużycia.
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.
W module tarifflist.php lista tagów taryfowych z parametru POST tg[] była używana jako lista identyfikatorów w zapytaniach SQL. Brak wymuszenia typu integer przed złożeniem listy przez implode() pozwalał uwierzytelnionemu użytkownikowi z dostępem do LMS wstrzyknąć fragment zapytania w miejscu klauzuli IN (...).
W dbrecover.php i netremap.php wartości z GET trafiały do atrybutów href linków potwierdzających akcję bez HTML-escaping. Atakujący nie musiał mieć konta (PR:N), ale wykonanie wymagało aktywnej interakcji zalogowanej ofiary LMS (UI:A) i dodatkowego warunku aplikacyjnego (AT:P).