CRITICAL🇬🇧 English

CVE-2026-12417

WordPress plugin SignUp & SignIn – Auth Bypass i przejęcie konta przez słaby reset hasła

CVSS 9.8v3.1pub. 2026-06-24upd. 2026-06-29

Plugin SignUp & SignIn dla WordPress w wersji do 1.0.0 włącznie zawiera krytyczną podatność umożliwiającą nieuwierzytelnionemu atakującemu zmianę hasła dowolnego użytkownika, łącznie z administratorem. Skutkiem jest pełne przejęcie konta i privilege escalation na poziom administratora witryny.

Pokaż oryginał (EN)

The SignUp & SignIn plugin for WordPress is vulnerable to Authentication Bypass via Weak Password Reset Validation leading to Account Takeover in versions up to, and including, 1.0.0. This is due to the `pravel_change_password()` AJAX handler — registered via `wp_ajax_nopriv_pravel_change_password` and therefore accessible to unauthenticated users — performing no nonce verification, no capability check, and only a loose equality check between an attacker-supplied `reset_activation_code` POST parameter and the target user's `forgot_email` user meta value; when a user has never initiated a password reset, `get_user_meta()` returns an empty string that trivially satisfies this check against an omitted or empty attacker-supplied code. This makes it possible for unauthenticated attackers to change the password of any WordPress user, including administrators, by sending a crafted POST request to `admin-ajax.php` with `action=pravel_change_password`, `reset_user_id` set to the target account's user ID, and `new_password_custom` set to an attacker-chosen password. Successful exploitation allows the attacker to authenticate with the newly set password and fully take over the targeted account, achieving administrator-level privilege escalation on the affected site.

🤖 Analiza AI
Jak działa

Handler AJAX `pravel_change_password()` zarejestrowany jako `wp_ajax_nopriv_pravel_change_password` jest dostępny dla niezalogowanych użytkowników bez żadnej weryfikacji nonce ani sprawdzenia uprawnień. Mechanizm walidacji kodu resetowania hasła opiera się wyłącznie na luźnym porównaniu (loose equality) parametru POST `reset_activation_code` z wartością meta użytkownika `forgot_email`. Gdy użytkownik nigdy nie inicjował resetowania hasła, funkcja `get_user_meta()` zwraca pusty ciąg znaków, który trywialnie spełnia ten warunek przy pominięciu lub przesłaniu pustego parametru przez atakującego. Atakujący wysyła spreparowane żądanie POST do `admin-ajax.php` z parametrami `action=pravel_change_password`, `reset_user_id` ustawionym na ID docelowego konta oraz `new_password_custom` zawierającym wybrane przez siebie hasło.

Skutki

Nieuwierzytelniony atakujący może ustawić własne hasło dla dowolnego konta WordPress, w tym konta administratora, a następnie zalogować się i uzyskać pełną kontrolę nad witryną, osiągając privilege escalation do poziomu administratora.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu aktualizacji zaleca się dezaktywację lub usunięcie pluginu SignUp & SignIn oraz monitorowanie logów dostępu pod kątem nieautoryzowanych żądań do `admin-ajax.php` z parametrem `action=pravel_change_password`.

Kogo dotyczy

Plugin SignUp & SignIn dla WordPress w wersjach do 1.0.0 włącznie

Uwagi

Podatność jest trywialna do wykorzystania — nie wymaga żadnego uwierzytelnienia, posiadania kodu resetowania hasła ani wcześniejszej interakcji ze strony ofiary, o ile ta nigdy nie inicjowała procesu resetowania hasła (domyślny stan konta).

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Auth BypassLPE
CWE
Referencje
CVE-2026-12417 — WordPress plugin SignUp & SignIn – Auth Bypass i przejęcie konta przez słaby reset hasła — CRITICAL 9.8 | CVEbaza.pl