CVE-2026-109962
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Froxlor w wersji od 0.10.0 do 2.3.14 zawiera podatność braku autoryzacji, która pozwala kontom resellerów na odczyt konfiguracji serwera MySQL i zadań cron przeznaczonych tylko dla pełnego administratora poprzez polecenia API. Resellerzy mogą wywołać MysqlServer.listing, MysqlServer.get lub Cronjobs.listing przez api.php, aby uzyskać nazwy użytkowników zarządzających, hosty, porty, ustawienia TLS i metadane cron.
Ocena ryzyka
Resellerzy mogą poznać poufne dane konfiguracyjne serwera MySQL i zadań cron, co może ułatwić dalsze ataki, takie jak nieautoryzowany dostęp do bazy danych lub manipulacja harmonogramem zadań. Stanowi to naruszenie zasady najmniejszych uprawnień.
Rekomendacja
Zaktualizuj Froxlor do wersji 2.3.14 lub nowszej. Sprawdź, czy uprawnienia API dla MysqlServer i Cronjobs są prawidłowo ograniczone do pełnych administratorów.
Inne podatności w Froxlor
Zobacz wszystkie- CVE-2026-113677Średnie
Froxlor w wersjach od 0.10.0 przed 2.3.15 zawiera podatność braku autoryzacji w komendzie API SubDomains.delete, która pozwala uwierzytelnionym klientom usuwać główne domeny przydzielone przez resellera poprzez podanie identyfikatora domeny głównej. Atakujący mogą obejść ograniczenia interfejsu webowego, usunąć domeny, osierocić rekordy vhost, DNS i subdomen oraz doprowadzić licznik subdomains_used poniżej zera, aby uzyskać dodatkowy limit subdomen.
- CVE-2026-113676Średnie
Froxlor w wersjach od 0.10.0 przed 2.3.15 zawiera podatność obejścia autoryzacji w komendzie API Admins.get, która pozwala resellerom odczytać dowolny rekord administratora poprzez pomieszanie identyfikatorów. Atakujący mogą wysłać własną nazwę logowania z numerycznym identyfikatorem innego administratora, aby uzyskać adres e-mail kontaktowy, listy dozwolonych adresów IP, limity zasobów, notatki i historię logowania.
- CVE-2026-109960Wysokie
Froxlor w wersjach od 2.0.0 do 2.3.14 zawiera podatność przechowywanego skryptu krzyżowego (XSS), która pozwala uwierzytelnionym klientom na wstrzyknięcie HTML i JavaScript poprzez ustawienie złośliwej wartości motywu w customer_index.php. Skrypt wykonuje się, gdy administrator przegląda przegląd klientów z włączoną kolumną Theme, co pozwala atakującym na wykorzystanie tokenu CSRF do tworzenia kont administratorów lub zmiany ustawień serwera.
- CVE-2026-100712Średnie
Froxlor do wersji 2.3.10 wyłącza dwuskładnikowe uwierzytelnianie (2FA) użytkownika natychmiast po nieuwierzytelnionym żądaniu GET do strony zarządzania 2FA (np. /customer_index.php?page=2fa&action=delete), bez potwierdzenia, ponownego uwierzytelnienia ani tokena CSRF. Globalny middleware CSRF obejmuje tylko żądania POST/PUT/PATCH/DELETE, a ciasteczko sesji ma SameSite=Lax, więc nawigacja między witrynami (kliknięcie linku lub przekierowanie) przenosi sesję ofiary i cicho czyści type_2fa/data_2fa. Dotyczy to zarówno handlerów 2FA klienta, jak i administratora. Atakujący, który zwabi zalogowanego użytkownika panelu do kliknięcia spreparowanego linku, redukuje konto do uwierzytelniania tylko hasłem, co można połączyć z przejętym hasłem do przejęcia konta. Naprawione w 2.3.12.
- CVE-2026-100711Wysokie
Froxlor przed wersją 2.3.12 nie unieważnia istniejących sesji panelu, kluczy API i ciasteczek zaufania 2FA po zmianie hasła użytkownika. Atakujący posiadający przejęte sesje, ważne klucze API lub tokeny zaufania 2FA zachowują pełny dostęp do konta po rotacji hasła, omijając działania związane z reagowaniem na incydenty.
- CVE-2026-100708Wysokie
Froxlor przed wersją 2.3.13 zwraca kolumnę ssl_key_file — która przechowuje surową zawartość prywatnego klucza TLS w formacie PEM — bezpośrednio w odpowiedziach JSON poleceń API Certificates.get i Certificates.listing, ponieważ wyniki zapytań domain_ssl_settings są przekazywane przez ApiCommand::response() bez żadnego usuwania pól ani listy dozwolonych. Nisko uprzywilejowany uwierzytelniony klient API może pobrać klucze prywatne certyfikatów swoich domen, w tym klucze Let's Encrypt generowane przez Froxlor po stronie serwera i przechowywane z uprawnieniami root-only (0600), do których klient nie ma dostępu do systemu plików; konta reseller i customers_see_all admin mogą zrzucić klucze prywatne innych podmiotów przez ten sam mechanizm. Ujawnione klucze umożliwiają podszywanie się pod domenę, pasywne deszyfrowanie przechwyconego ruchu TLS oraz aktywne ataki typu man-in-the-middle.
- CVE-2026-113678Krytyczne
Froxlor przed wersją 2.3.15 zawiera podatność podążania za symlinkami w Statistics::makeChownWithNewStats, która pozwala uwierzytelnionym klientom przejąć własność dowolnych katalogów hosta poprzez nadużycie uruchamianego jako root crona ruchu. Atakujący może zastąpić katalog statystyk goaccess w swoim document root symlinkiem, powodując, że chown -R przekaże im drzewa katalogów należące do roota.
- CVE-2026-100717Krytyczne
Froxlor w wersjach 2.3.10 i wcześniejszych zawiera niekompletną poprawkę podatności GHSA-c3p2 — funkcja Validate::validateUrl odrzuca znaki CR/LF tylko w ścieżce, zapytaniu i fragmencie, a nie sprawdza części userinfo (user:pass@). Uwierzytelniony klient z uprawnieniami do tworzenia subdomen może podać adres URL przekierowania subdomeny z ładunkiem CR/LF w części userinfo, który przechodzi walidację i jest zapisywany dosłownie w konfiguracji vhost nginx lub Apache. Froxlor regeneruje i przeładowuje konfigurację jako root, więc wstrzyknięte dyrektywy działają w całym serwerze.
- CVE-2026-100716Krytyczne
Froxlor w wersjach 2.3.10 i wcześniejszych zawiera niekompletną poprawkę podatności GHSA-75h4-... — cron eksportu danych klienta (DataDump) nie waliduje pośrednich komponentów ścieżki docelowej. Funkcja Froxlor\FileDir::makeCorrectDir() ma błąd off-by-one w przechodzeniu komponentów ścieżki, pomijając pierwszy segment poniżej katalogu domowego klienta, a zabezpieczenie w ExportCron.php sprawdza tylko ostatni komponent przez is_link(). Uwierzytelniony klient z włączonym eksportem może zaplanować eksport do podkatalogu swojego webspace, a następnie zastąpić pośredni komponent ścieżki dowiązaniem symbolicznym przed uruchomieniem crona jako root. Wtedy 'chown -R' rekurencyjnie zmienia właściciela drzewa katalogów (np. /etc) na UID klienta, co prowadzi do przejęcia uprawnień roota i kompromitacji między dzierżawcami.
- CVE-2026-100715Krytyczne
Froxlor w wersjach do 2.3.10 jest podatny na dowolne usuwanie plików poprzez podążanie za dowiązaniami symbolicznymi w zadaniu cron usuwania danych FTP. Zadanie cron 8 (deleteFtpData), kolejkowane przy usuwaniu konta FTP, wywołuje FileDir::makeCorrectDir() bez argumentu $fixed_homedir, więc przechodzenie komponentów ścieżki jest pomijane, a następnie wykonuje 'rm -rf' jako root na wynikowej ścieżce z jedynie tekstowymi zabezpieczeniami. Ponieważ makeCorrectDir() dodaje końcowy ukośnik, GNU rm podąża za dowiązaniem symbolicznym użytym jako pośredni lub końcowy komponent ścieżki. Uwierzytelniony klient mogący zapisywać w katalogu domowym FTP może umieścić dowiązanie symboliczne między wstawieniem zadania a wykonaniem crona, powodując rekurencyjne usunięcie dowolnych drzew katalogów przez zadanie roota.
Oryginalny opis (angielski, źródło NVD)
Froxlor 0.10.0 before 2.3.14 contains a missing authorization vulnerability that allows reseller accounts to read full-admin-only MySQL server and cronjob configuration via API read commands. Resellers can call MysqlServer.listing, MysqlServer.get, or Cronjobs.listing through api.php to obtain management usernames, hosts, ports, TLS settings, and cron metadata.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

