CVE-2026-54540
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 50 - wyżej niż 50% wszystkich znanych CVE
Streszczenie
Pheditor przed wersją 2.0.5 ma podatność w funkcji terminala, która sprawdza tylko początek komendy, a nie blokuje podstawiania komend shell ($()). Uwierzytelniony użytkownik może ominąć listę dozwolonych komend i wykonać dowolne polecenia OS.
Ocena ryzyka
Atakujący może wykonać dowolne polecenia na serwerze jako użytkownik www-data, co prowadzi do pełnej kompromitacji serwera.
Rekomendacja
Zaktualizuj Pheditor do wersji 2.0.5 lub nowszej.
Inne podatności w Pheditor
Zobacz wszystkie- CVE-2026-66824Krytyczne
Podatność na trwałe XSS w narzędziu do wizualizacji drzewa przechwytywania. Serializowane dane drzewa były osadzane w bloku JavaScript inline, co pozwalało na wstrzyknięcie złośliwego kodu HTML/JavaScript. Atakujący mógł wykonać działania w kontekście sesji ofiary.
- CVE-2026-55579Krytyczne
Pheditor zawiera zakodowane na stałe domyślne hasło 'admin' (hash SHA-512). Brak mechanizmu wymuszającego zmianę hasła przy pierwszym logowaniu. Każde wdrożenie z domyślnymi danymi uwierzytelniającymi daje atakującemu pełny dostęp do edytora plików, przesyłania plików i terminala, umożliwiając odczyt/zapis plików i zdalne wykonanie kodu.
- CVE-2026-48030Krytyczne
Podatność na wstrzyknięcie poleceń systemu operacyjnego w Pheditorze. Uwierzytelniony użytkownik może wykonać dowolne polecenia systemowe poprzez wstrzyknięcie metaznaków powłoki do parametru 'dir' POST, omijając białą listę TERMINAL_COMMANDS.
- CVE-2026-55578Wysokie
Pheditor w wersjach 2.0.1-2.0.5 ma podatność w funkcji terminala, która używa niekompletnej listy blokowanych znaków. Znaki |, ` i nowa linia (0x0A) nie są blokowane, co pozwala uwierzytelnionemu użytkownikowi na ominięcie listy dozwolonych komend i wykonanie dowolnych poleceń OS.
Oryginalny opis (angielski, źródło NVD)
Pheditor is a single-file editor and file manager written in PHP. Prior to version 2.0.5, there is an authenticated terminal command whitelist bypass. The terminal feature checks whether the submitted command starts with one of the configured TERMINAL_COMMANDS values, then passes the full command string to shell_exec(). Shell command substitution such as $() is not blocked, so an authenticated user with the terminal permission can bypass a restricted command allowlist and execute arbitrary shell commands as the web server user. This issue has been patched in version 2.0.5.

