CVE-2024-58383
WysokieCVSS 7.3Streszczenie
Froxlor przed wersją 2.2.0 (dotyczy do 2.2.0-rc3 włącznie) generuje plik /etc/pure-ftpd/db/mysql.conf z uprawnieniami 0644 poprzez szablony konfiguracji XML w lib/configfiles/, mimo że plik zawiera hasło użytkownika SQL Froxlor. W systemach, w których katalogi nadrzędne są czytelne dla wszystkich (domyślnie w Debian 12), każdy nieuprzywilejowany lokalny użytkownik mogący wykonywać polecenia lub kod na hoście — w tym użytkownicy wirtualni bez dostępu SSH, którzy mogą przesyłać skrypty PHP/CGI — może odczytać plik i uzyskać poświadczenia bazy danych Froxlor. Dostęp do bazy danych można następnie wykorzystać do zmiany hasha hasła administratora i ziarna TOTP, zalogowania się jako administrator Froxlor i ostatecznie uzyskania uprawnień roota. Dotyczy tylko instancji skonfigurowanych do używania pure-ftpd.
Ocena ryzyka
Lokalny nieuprzywilejowany użytkownik może uzyskać poświadczenia bazy danych, przejąć konto administratora Froxlor i eskalować uprawnienia do roota, co prowadzi do pełnej kompromitacji serwera.
Rekomendacja
Zaktualizuj Froxlor do wersji 2.2.0 lub nowszej. Natychmiast zmień uprawnienia pliku /etc/pure-ftpd/db/mysql.conf na 0600 i ogranicz dostęp do katalogów nadrzędnych.
Inne podatności w Froxlor
Zobacz wszystkie- CVE-2026-90935Średnie
Froxlor przed wersją 2.3.7 nie weryfikuje parametru mysql_server względem listy dozwolonych serwerów (allowed_mysqlserver) klienta w poleceniu API Mysqls.add. Atakujący mogą podać niedozwolony indeks serwera, aby tworzyć bazy danych i użytkowników MySQL na zabronionych serwerach, omijając kontrolę dostępu per klient.
- CVE-2026-90937Krytyczne
Froxlor w wersjach przed 2.2.5 nie waliduje znaków nowej linii w adresach URL przekierowań subdomen, co pozwala uwierzytelnionym klientom wstrzyknąć dowolne dyrektywy konfiguracji nginx lub Apache. Złośliwe adresy URL z literalnymi znakami nowej linii są zapisywane dosłownie do plików konfiguracji vhost podczas przebudowy cron, umożliwiając uszkodzenie konfiguracji serwera WWW, atak odmowy usługi lub przejęcie odpowiedzi HTTP dla hostowanych domen.
- CVE-2026-62988Krytyczne
Froxlor 2.3.7 do 2.3.8 w poleceniach API Customers.get, Customers.listing, Admins.get, Admins.listing, Ftps.get i Ftps.listing zwraca pełne wiersze bazy danych bez usuwania pól haseł i data_2fa. Uwierzytelniony wywołujący API z uprawnieniami do tych punktów końcowych może uzyskać hasze haseł klientów, administratorów i FTP oraz zakodowane w Base32 sekrety TOTP dla kont administratorów i klientów. Hasze haseł można złamać offline, a sekrety TOTP mogą generować ważne kody drugiego czynnika, dopóki uwierzytelnianie dwuskładnikowe nie zostanie zresetowane. Ujawnienie obu wartości dla konta może umożliwić przejęcie panelu hostingowego lub hostowanych zasobów i może pokonać oba czynniki uwierzytelniania. Problem naprawiono w wersji 2.3.8.
- CVE-2015-5959Krytyczne
Froxlor w wersji przed 0.9.33.2 z domyślną konfiguracją może umożliwić zdalnym atakującym uzyskanie hasła do bazy danych poprzez odczytanie pliku /logs/sql-error.log.
- CVE-2016-5100Krytyczne
Froxlor w wersjach przed 0.9.35 wykorzystuje funkcję PHP rand do generowania liczb losowych, co ułatwia zdalnym atakującym odgadnięcie tokena resetowania hasła poprzez przewidywanie wartości.
- CVE-2026-90936Średnie
Froxlor przed wersją 2.3.7 nie ogranicza poprawnie wyszukiwania aliasów nadawców do bieżącego klienta w pliku customer_email.php. Uwierzytelnieni atakujący mogą wyliczać globalne identyfikatory aliasów nadawców i odczytywać dozwolone wartości nadawców innych klientów, podając dowolne parametry senderid w żądaniach potwierdzenia usunięcia.
- CVE-2026-90767Średnie
Froxlor przed wersją 2.3.12 nie waliduje poprawnie wieloliniowych kluczy publicznych SSH w punkcie końcowym SshKeys::add(). Umożliwia to klientom wstrzyknięcie dowolnych linii do plików authorized_keys, w tym złośliwych wpisów z dyrektywami opcji.
- CVE-2026-55593Średnie
Podatność w oprogramowaniu Froxlor przed wersją 2.3.8. Punkt wejścia lib/ajax.php omija centralną walidację żądań, a akcja editapikey nie sprawdza tokenu CSRF. Nieuwierzytelniony atakujący może nakłonić przeglądarkę administratora do wysłania sfałszowanego żądania, które dodaje adres atakującego do listy allowed_from klucza API lub usuwa jego wygaśnięcie, osłabiając zabezpieczenia klucza.
- CVE-2026-54543Średnie
Froxlor przed wersją 2.3.8 zawiera podatność w komendzie API DomainZones.add, która nie odrzuca znaków nowej linii, tabulacji, średników ani nieobsługiwanych typów rekordów DNS przed zapisem do pliku strefy BIND. Uwierzytelniony klient z uprawnieniami do stref DNS może wstrzyknąć dodatkowe linie rekordów, omijając walidację pól. BIND akceptuje wstrzyknięte rekordy, co pozwala na modyfikację danych DNS i może wpłynąć na dostępność DNS w strefie.
- CVE-2026-54348Wysokie
Froxlor przed wersją 2.3.8 zawiera podatność SQL Injection w endpointach Admins.add i Admins.update, gdzie atakujący administrator może zapisać tablicę ipaddress z dowolnymi elementami, które później są łączone w klauzulę SQL IN bez parametryzacji. Uwierzytelniony administrator z uprawnieniami change_serversettings może wykorzystać to do odczytania danych z bazy, w tym loginów i hashy haseł administratorów.
Oryginalny opis (angielski, źródło NVD)
Froxlor before 2.2.0 (affected up to and including 2.2.0-rc3) generates /etc/pure-ftpd/db/mysql.conf with mode 0644 via the XML configuration templates in lib/configfiles/, even though the file contains the Froxlor SQL user's password. On systems where the parent directories are world readable (the default on Debian 12), any unprivileged local user able to execute commands or code on the host — including virtual users without SSH access who can upload PHP/CGI scripts — can read the file and obtain the Froxlor database credentials. Database access can then be leveraged to alter an administrator's password hash and TOTP seed, log in as a Froxlor administrator, and ultimately gain root privileges. Only instances configured to use pure-ftpd are affected.

