CVE-2026-85659
WysokieCVSS 8.8Streszczenie
Wtyczka PilotPress dla WordPressa (wersje do 2.0.43 włącznie) jest podatna na eskalację uprawnień poprzez przejęcie konta. Procedura obsługi AJAX update_cc_details() przekazuje nazwę użytkownika do ONTRAPORT przed sprawdzeniem kolizji lokalnej, a po wykryciu kolizji nie wycofuje zdalnej zmiany nazwy, co pozwala uwierzytelnionemu atakującemu z uprawnieniami Subscriber przejąć konto Administratora.
Ocena ryzyka
Uwierzytelniony atakujący z minimalnymi uprawnieniami (Subscriber) może całkowicie przejąć konto Administratora WordPressa, co prowadzi do pełnej kompromitacji witryny.
Rekomendacja
Zaktualizować wtyczkę PilotPress do wersji nowszej niż 2.0.43 lub ją wyłączyć, jeśli poprawka nie jest dostępna; rozważyć ograniczenie dostępu do funkcji Customer Center.
Inne podatności w PilotPress
Zobacz wszystkie- CVE-2025-58238Średnie
Wtyczka PilotPress dla WordPressa (wersje do 2.0.36 włącznie) zawiera podatność Stored XSS wynikającą z niewłaściwej neutralizacji danych wejściowych podczas generowania stron. Złośliwy skrypt może zostać trwale zapisany i wykonany w przeglądarce użytkownika.
- CVE-2025-58221Średnie
Podatność braku autoryzacji w PilotPress (wersje do 2.0.36) umożliwia wykorzystanie nieprawidłowo skonfigurowanych poziomów kontroli dostępu.
Oryginalny opis (angielski, źródło NVD)
The PilotPress plugin for WordPress is vulnerable to Privilege Escalation via Account Takeover in all versions up to, and including, 2.0.43. The vulnerability exists because the `update_cc_details()` AJAX handler forwards an attacker-supplied `username` parameter to ONTRAPORT via `api_call('update_cc_details', ...)` before performing the local `username_exists()` collision check, and aborts without rolling back the remote rename when a collision is detected — leaving the remote ONTRAPORT contact renamed to an existing WordPress Administrator's login. On a subsequent login attempt, `user_login()` (hooked to `wp_authenticate`) authenticates against ONTRAPORT using the renamed login and the attacker's own password, resolves the local WordPress user row via `get_user_by('login', $username)` — which now selects the real Administrator's row — and calls `wp_set_password()` against that Administrator's user ID; because the `user_level != 10` guard only suppresses PilotPress's own cookie issuance rather than returning a `WP_Error` to core, WordPress proceeds to validate the newly-synchronized password and issues a full Administrator authentication cookie to the attacker. This makes it possible for authenticated attackers with Subscriber-level access and above — specifically any PilotPress member holding a valid ONTRAPORT contact and the Customer Center nonce — to fully take over an Administrator account.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

