Plugin Single Sign On For TNG dla WordPress (wszystkie wersje do 2.0.0 włącznie) umożliwia nieuwierzytelnionemu atakującemu zresetowanie hasła dowolnego konta WordPress, w tym konta administratora. Podatność pozwala na całkowite przejęcie kontroli nad witryną bez żadnych uprawnień.
▸ Pokaż oryginał (EN)
The Single Sign On For TNG plugin for WordPress is vulnerable to Authentication Bypass via unauthenticated password reset in all versions up to, and including, 2.0.0. This is due to the `ssoprocess_ajax()` function — registered on `wp_ajax_nopriv_ssoprocess_ajax` and therefore reachable without authentication — accepting an attacker-supplied `email` parameter with the `setnewpassword` operation and calling `reset_password()` on the resolved account without any ownership token, email confirmation link, or capability check. The sole guard is a call to `check_ajax_referer()`, which provides no authorization barrier because the `ssoajaxnonce` nonce is publicly broadcast on every front-end page via `wp_localize_script()` into the `SSOPWDREQUIREMENT` JavaScript object; since WordPress computes nonces for logged-out visitors against a shared anonymous session context, any unauthenticated visitor can scrape a valid nonce from the homepage and use it to authenticate the request. This makes it possible for unauthenticated attackers to change the password of any WordPress account, including administrator accounts, enabling complete site takeover.
Funkcja `ssoprocess_ajax()` jest zarejestrowana na hooku `wp_ajax_nopriv_ssoprocess_ajax`, co oznacza, że jest dostępna bez uwierzytelnienia. Przyjmuje ona dostarczony przez atakującego parametr `email` wraz z operacją `setnewpassword` i wywołuje `reset_password()` na znalezionym koncie — bez weryfikacji tokenu właściciela, linku potwierdzającego w e-mailu ani sprawdzenia uprawnień. Jedynym zabezpieczeniem jest wywołanie `check_ajax_referer()`, które jednak nie stanowi żadnej bariery autoryzacyjnej, ponieważ nonce `ssoajaxnonce` jest publiczne rozgłaszany na każdej stronie frontendowej za pomocą `wp_localize_script()` do obiektu JavaScript `SSOPWDREQUIREMENT`. Ponieważ WordPress generuje nonce dla niezalogowanych odwiedzających w oparciu o wspólny anonimowy kontekst sesji, każdy nieuwierzytelniony użytkownik może pobrać ważny nonce ze strony głównej i użyć go do uwierzytelnienia żądania.
Nieuwierzytelniony atakujący może zmienić hasło dowolnego konta WordPress, w tym konta administratora, co prowadzi do całkowitego przejęcia witryny (pełna triada CIA: poufność, integralność, dostępność — wszystkie zagrożone na poziomie wysokim).
Należy zaktualizować plugin Single Sign On For TNG do wersji wyższej niż 2.0.0, w której problem został naprawiony zgodnie z changesetem dostępnym w referencjach producenta. Jeśli aktualizacja nie jest natychmiast możliwa, należy rozważyć tymczasowe wyłączenie pluginu do czasu wdrożenia patcha.
Plugin Single Sign On For TNG dla WordPress — wszystkie wersje do 2.0.0 włącznie.
Podatność sklasyfikowana jako CWE-620 (Unverified Password Change). Mechanizm bypass polega na nadużyciu publicznie dostępnego nonce WordPress w połączeniu z brakiem weryfikacji własności konta przy operacji zmiany hasła.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H