CVE-2026-34216
ŚrednieCVSS 6.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% wszystkich znanych CVE
Streszczenie
CtrlPanel w wersjach do 1.1.1 zawiera podatność na zdalne wykonanie kodu (RCE) w punkcie końcowym aktualizacji ustawień administratora. Podatność wynika z braku walidacji wczytywanej klasy, co pozwala uwierzytelnionemu administratorowi na dynamiczne wywołanie dowolnej klasy dostępnej w autoloaderze Composera, potencjalnie prowadząc do wykonania kodu.
Ocena ryzyka
Uwierzytelniony atakujący z uprawnieniami administratora może zdalnie wykonać dowolny kod na serwerze, co może prowadzić do pełnego przejęcia kontroli nad systemem.
Rekomendacja
Zaleca się aktualizację CtrlPanel do wersji 1.2.0 lub nowszej, która zawiera poprawkę.
Inne podatności w CtrlPanel
Zobacz wszystkie- CVE-2026-34234Krytyczne
CtrlPanel to oprogramowanie do fakturowania open-source dla dostawców hostingu. W wersjach 1.1.1 i wcześniejszych instalator webowy (public/installer/index.php) jest podatny na nieuwierzytelnione zdalne wykonanie kodu (RCE), ponieważ wykonuje sprawdzenie install.lock dopiero po dołączeniu i wykonaniu plików obsługi formularza, pozostawiając punkty końcowe instalatora dostępne na już zainstalowanych instancjach. Obsługa przekazuje również niesanitizowane dane wejściowe użytkownika bezpośrednio do poleceń powłoki, umożliwiając atakującemu wysłanie spreparowanych żądań wykonujących dowolne polecenia na serwerze. Podatność wynika z dwóch połączonych słabości: (1) przedwczesne wykonanie obsługi formularza przed sprawdzeniem pliku blokady oraz (2) niebezpieczne użycie danych wejściowych użytkownika w konstrukcji poleceń powłoki. Zgłoszono, że ta podatność jest aktywnie wykorzystywana w środowisku naturalnym. Problem został naprawiony w wersji 1.2.0.
- CVE-2026-34358Wysokie
CtrlPanel 1.1.1 i wcześniejsze zawiera podatność polegającą na złamaniu kontroli dostępu. Administratorzy wdrożyli sprawdzanie uprawnień w metodach wyświetlania formularzy, ale pominęli je w odpowiadających im metodach zapisu (store/update), co pozwala każdemu uwierzytelnionemu użytkownikowi na ominięcie RBAC poprzez bezpośrednie żądania POST/PATCH.
- CVE-2026-34246Średnie
CtrlPanel (oprogramowanie billingowe open-source dla dostawców hostingu) w wersjach 1.1.1 i wcześniejszych zawiera trwałą podatność XSS w interfejsie zarządzania rolami administratora. Metoda datatable() w RoleController.php interpoluje nazwę i kolor roli bezpośrednio do kodu HTML bez sanitacji, a .rawColumns(['actions', 'name']) wyłącza automatyczne kodowanie. Administrator z uprawnieniami do tworzenia lub edycji ról może wstrzyknąć złośliwy kod, który wykona się przy każdym załadowaniu strony /admin/roles przez każdego administratora.
- CVE-2026-34241Wysokie
Podatność Stored XSS w systemie bilingowym CtrlPanel (wersje 1.1.1 i wcześniejsze) występuje w powiadomieniach odpowiedzi na zgłoszenia. Niesanitizowana treść odpowiedzi jest przechowywana w bazie danych i renderowana bez escapowania przez składnię Blade {!! !!}, co pozwala na wykonanie dowolnego JavaScriptu w kontekście sesji ofiary. Problem dotyczy zarówno powiadomień dla administratorów, jak i użytkowników.
- CVE-2026-34233Średnie
CtrlPanel, oprogramowanie billingowe open-source dla dostawców hostingu, w wersjach 1.1.1 i wcześniejszych, posiada wiele kontrolerów administracyjnych udostępniających endpointy DataTable bez kontroli autoryzacji. Każdy uwierzytelniony użytkownik może uzyskać dostęp do wrażliwych danych administracyjnych.
Oryginalny opis (angielski, źródło NVD)
CtrlPanel is open-source billing software for hosting providers. In versions 1.1.1 and prior, the admin settings update endpoint accepted a fully qualified class name directly from user-supplied request input and used it for dynamic static method calls and object instantiation without any allowlist validation, allowing for authenticated Remote Code Execution. An authenticated admin-level user could supply an arbitrary class name available in the Composer autoloader, potentially triggering unintended constructor or magic method execution. The update() method reads settings_class directly from the HTTP request and passed it to new $settings_class() and $settings_class::getValidations() without verifying that the provided value corresponds to a legitimate settings class: Because PHP resolves class names against the Composer autoloader at runtime, any autoloadable class in the application or its dependencies could be instantiated. Depending on the classes available in the dependency tree, this can trigger unintended side effects through constructors or magic methods (__construct, __toString, __wakeup), following a PHP object injection / gadget chain pattern. This issue has been fixed in version 1.2.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

