CVE-2026-61451
KrytyczneCVSS 9.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
Wtyczka Grav API (grav-plugin-api) przed wersją 1.0.4 nie weryfikuje pochodzenia pola admin_base_url w punkcie końcowym POST /api/v1/auth/forgot-password. Funkcja sanitizeHttpUrl() sprawdza tylko schemat URL (http/https), ale nie sprawdza hosta względem własnego serwera, co pozwala atakującemu na podstawienie dowolnego hosta. Nieuwierzytelniony atakujący może spowodować, że e-mail resetujący hasło wysłany do ofiary będzie zawierał link prowadzący do serwera kontrolowanego przez atakującego; gdy ofiara kliknie link, prawidłowy token resetujący zostaje ujawniony atakującemu, co umożliwia pełne przejęcie konta.
Ocena ryzyka
Ryzyko dla organizacji obejmuje możliwość przejęcia kont użytkowników poprzez kradzież tokenów resetujących hasło, co może prowadzić do nieautoryzowanego dostępu do danych i systemów.
Rekomendacja
Należy natychmiast zaktualizować wtyczkę Grav API do wersji 1.0.4 lub nowszej, która zawiera poprawkę walidacji pochodzenia pola admin_base_url.
Oryginalny opis (angielski, źródło NVD)
The Grav API plugin (grav-plugin-api) before 1.0.4 does not validate the origin of the client-supplied admin_base_url field in the POST /api/v1/auth/forgot-password endpoint. The sanitizeHttpUrl() function only checks that the URL scheme is http/https and never verifies the host against the server's own origin, so an attacker can supply an arbitrary host. As a result, an unauthenticated attacker can cause the password reset email sent to a victim to contain a reset link pointing at an attacker-controlled server; when the victim follows the link, the valid reset token is disclosed to the attacker, enabling full account takeover. The vulnerable base URL can also be influenced via the Referer or Origin headers.

