Plugin Invoice Generator dla WordPress w wersjach do 1.0.0 włącznie zawiera krytyczną podatność umożliwiającą nieuwierzytelnionemu atakującemu przejęcie dowolnego konta, w tym kont administratorów. Dziura wynika z braku weryfikacji nonce i uprawnień w funkcji obsługującej reset hasła.
▸ Pokaż oryginał (EN)
The Invoice Generator plugin for WordPress is vulnerable to Account Takeover via Password Reset in all versions up to, and including, 1.0.0. This is due to the `pravel_invoice_change_password()` function being registered as a nopriv AJAX handler with no nonce verification and no authorization check, and performing a loose equality comparison between the supplied `reset_activation_code` POST parameter and the target user's stored `forgot_email` user meta — a check that trivially evaluates to true (`'' == ''`) for any user who has never initiated a forgot-password request, which applies to administrators under normal conditions. This makes it possible for unauthenticated attackers to supply an arbitrary user ID via the `reset_user_id` POST parameter, bypass the activation code check entirely by omitting `reset_activation_code`, and set the target account's password to an attacker-chosen value, enabling full takeover of any account on the site, including administrator accounts.
Funkcja `pravel_invoice_change_password()` jest zarejestrowana jako handler AJAX dostępny bez uwierzytelnienia (nopriv), nie weryfikuje tokenu nonce ani uprawnień wywołującego. Kod porównuje wartość parametru `reset_activation_code` z polem `forgot_email` zapisanym w metadanych użytkownika za pomocą luźnego porównania (loose equality), co powoduje, że porównanie `'' == ''` daje wynik prawdziwy dla każdego użytkownika, który nigdy nie inicjował procedury resetowania hasła — w praktyce dotyczy to kont administratorów w normalnych warunkach. Atakujący może wskazać dowolny identyfikator użytkownika przez parametr POST `reset_user_id`, pominąć parametr `reset_activation_code` (co sprawia, że weryfikacja kodu trywialnie przechodzi) i ustawić nowe, wybrane przez siebie hasło dla wskazanego konta.
Nieuwierzytelniony atakujący może przejąć pełną kontrolę nad dowolnym kontem w serwisie WordPress, włącznie z kontami administratorów, co skutkuje całkowitą kompromitacją witryny (utrata poufności, integralności i dostępności).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Do czasu aktualizacji zaleca się dezaktywację i usunięcie pluginu Invoice Generator ze wszystkich instalacji WordPress.
Plugin Invoice Generator dla WordPress we wszystkich wersjach do 1.0.0 włącznie.
Podatność jest szczególnie niebezpieczna, ponieważ konta administratorów w typowej konfiguracji WordPress nigdy nie inicjują procesu resetowania hasła przez mechanizm pluginu, co czyni je domyślnie podatnymi na przejęcie bez żadnych warunków wstępnych.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H