W Plesk Obsidian 18.0.70 funkcja weryfikacji hasła administratora używa niebezpiecznego operatora porównania '==' zamiast '===', co w PHP umożliwia obejście uwierzytelnienia. Atakujący bez żadnych uprawnień może zalogować się na konto administratora panelu hostingowego, jeśli aktualne hasło admina pasuje do tzw. 'magic hash'.
▸ Pokaż oryginał (EN)
In Plesk Obsidian 18.0.70, _isAdminPasswordValid uses an == comparison. Thus, if the correct password is "0e" followed by any digit string, then an attacker can login with any other string that evaluates to 0.0 (such as the 0e0 string). This occurs in admin/plib/LoginManager.php.
PHP przy użyciu operatora '==' (loose comparison) porównuje ciągi znaków w sposób typowo niezależny — jeśli oba ciągi mają format naukowy '0e[cyfry]', są traktowane jako liczby zmiennoprzecinkowe równe 0.0. Jeśli hasło administratora zaczyna się od '0e' i jest dalej ciągiem cyfr (tzw. magic hash), to dowolny inny ciąg o takiej samej właściwości (np. '0e0') zostanie uznany za identyczny. Błąd znajduje się w pliku admin/plib/LoginManager.php w metodzie _isAdminPasswordValid.
Atakujący zdalnie, bez żadnego uwierzytelnienia, może uzyskać pełny dostęp administracyjny do panelu Plesk, co prowadzi do całkowitego przejęcia kontroli nad serwerem hostingowym — w tym do odczytu i modyfikacji danych, zarządzania domenami oraz potencjalnego wykonania kodu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://support.plesk.com/hc/en-us/articles/33785727869847-Vulnerability-CVE-2025-54336). Jako doraźne obejście należy natychmiast zmienić hasło administratora na takie, które nie ma postaci '0e[cyfry]', oraz monitorować logi logowania pod kątem nieautoryzowanych dostępów.
Plesk Obsidian w wersji 18.0.70 — podatność dotyczy wyłącznie instalacji, w których hasło administratora ma postać 'magic hash' (zaczyna się od '0e' i jest dalej ciągiem cyfr).
Podatność opisana i upubliczniona przez badacza na blogu blog.aziz.tn. Atak jest możliwy wyłącznie w specyficznym przypadku, gdy hasło administratora ma formę tzw. PHP magic hash (0e + ciąg cyfr) — co ogranicza realny zasięg zagrożenia, mimo krytycznej oceny CVSS.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H