Podatność w Froxlor (przed wersją 2.3.4) pozwala uwierzytelnionemu administratorowi na wykonanie dowolnych poleceń systemowych z uprawnieniami root. Błąd typograficzny w kodzie walidacji danych wejściowych całkowicie wyłącza sprawdzanie formatu adresu e-mail, umożliwiając wstrzyknięcie złośliwych ciągów znaków do polecenia powłoki.
▸ Pokaż oryginał (EN)
Froxlor is open source server administration software. Prior to 2.3.4, a typo in Froxlor's input validation code (== instead of =) completely disables email format checking for all settings fields declared as email type. This allows an authenticated admin to store arbitrary strings in the panel.adminmail setting. This value is later concatenated into a shell command executed as root by a cron job, where the pipe character | is explicitly whitelisted. The result is full root-level Remote Code Execution. This vulnerability is fixed in 2.3.4.
W kodzie walidacji wejścia użyto operatora porównania (==) zamiast operatora przypisania (=), co powoduje całkowite wyłączenie sprawdzania formatu e-mail dla wszystkich pól typu email. Uwierzytelniony administrator może zapisać w ustawieniu panel.adminmail dowolny ciąg znaków zawierający znak potoku (|), który jest jawnie umieszczony na białej liście. Wartość ta jest następnie wklejana bezpośrednio do polecenia powłoki wykonywanego przez zadanie cron z uprawnieniami root, co skutkuje pełnym command injection prowadzącym do RCE.
Atakujący z uprawnieniami administratora panelu może wykonać dowolne polecenia systemowe z uprawnieniami root na serwerze, co prowadzi do pełnego przejęcia kontroli nad systemem, w tym do naruszenia poufności, integralności i dostępności danych.
Należy zaktualizować Froxlor do wersji 2.3.4, w której podatność została naprawiona. Patch dostępny jest w oficjalnym repozytorium projektu oraz w wydaniu 2.3.4 na GitHub.
Froxlor we wszystkich wersjach przed 2.3.4
Mimo wymagania uwierzytelnienia jako administrator (PR:H), zakres ataku jest zmieniony (S:C) i skutkuje pełnym RCE na poziomie root przez zadanie cron. CWE-482 odnosi się bezpośrednio do opisanego błędu typograficznego (== zamiast =) w kodzie walidacji.
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:HFroxlor
APPFroxlor< 2.3.4
Powiązane podatności
Froxlor: RCE przez path traversal w parametrze def_language
Froxlor: wstrzyknięcie kodu PHP przez nieskonfigurowany parametr MySQL
Improper Link Resolution Before File Access in GitHub repository froxlor/froxlor prior to 2.1.0.
Improper Restriction of Excessive Authentication Attempts in GitHub repository froxlor/froxlor prior to 2.0.20...
Authentication Bypass by Primary Weakness in GitHub repository froxlor/froxlor prior to 2.0.13.