Katalog CVE

CVE-2026-6456

WysokieCVSS 8.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.39%

Percentyl 31 - wyżej niż 31% wszystkich znanych CVE

Streszczenie

Wtyczka Account Switcher dla WordPressa w wersjach do 1.0.2 włącznie zawiera podatność na eskalację uprawnień. Wynika to z użycia luźnego porównania (`!=` zamiast `!==`) w punkcie końcowym REST API `rememberLogin` do walidacji sekretu, oraz braku walidacji, czy sekret nie jest pusty. Gdy użytkownik docelowy nigdy nie użył funkcji "Remember me", jego meta `asSecret` nie istnieje, co powoduje zwrócenie pustego stringa przez `get_user_meta()`. Atakujący może wysłać pusty parametr `secret`, który przechodzi porównanie (`'' != ''` daje `false`), a punkt końcowy wywołuje `wp_set_auth_cookie()` dla użytkownika docelowego. Dodatkowo, wszystkie trasy REST używają `permission_callback => '__return_true'` bez sprawdzania uprawnień. Umożliwia to uwierzytelnionym atakującym z dostępem na poziomie Subskrybenta lub wyższym przełączenie się na dowolne konto użytkownika, w tym Administratora, co daje pełne uprawnienia administracyjne.

Ocena ryzyka

Uwierzytelniony atakujący z niskim poziomem uprawnień może przejąć konto administratora i w pełni skompromitować witrynę WordPress.

Rekomendacja

Zaktualizuj wtyczkę Account Switcher do wersji nowszej niż 1.0.2, która usuwa tę podatność.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

The Account Switcher plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 1.0.2. This is due to the `rememberLogin` REST API endpoint using a loose comparison (`!=` instead of `!==`) for secret validation at `app/RestAPI.php:111`, combined with no validation that the secret is non-empty. When a target user has never used the "Remember me" feature, their `asSecret` user meta does not exist, causing `get_user_meta()` to return an empty string. An attacker can send an empty `secret` parameter, which passes the comparison (`'' != ''` is `false`), and the endpoint then calls `wp_set_auth_cookie()` for the target user. Additionally, all REST routes use `permission_callback => '__return_true'` with no capability checks. This makes it possible for authenticated attackers, with Subscriber-level access and above, to switch to any user account including Administrator, ultimately granting themselves full administrative privileges.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS