CVE-2026-85600
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 - wyżej niż 6% wszystkich znanych CVE
Streszczenie
Grav Admin (getgrav/grav-plugin-admin2) w wersjach do 2.0.19 zawiera podatność na trwały XSS w funkcji tHtml(), która podstawia niezaufane parametry, takie jak nazwy użytkowników, do szablonów tłumaczeń przed parsowaniem wyniku jako markdown. Walidacja nazw użytkownika po stronie serwera nie blokuje znaków <, >, " czy ', co pozwala atakującemu zarejestrować nazwę zawierającą kod HTML. Gdy administrator przegląda interfejs renderujący nazwę przez tHtml(), kod wykonuje się w jego sesji. Naprawiono w wersji 2.0.21.
Ocena ryzyka
Atakujący może wykonać złośliwy skrypt w sesji administratora, co może prowadzić do kradzieży sesji, modyfikacji treści lub eskalacji uprawnień.
Rekomendacja
Zaktualizuj Grav Admin do wersji 2.0.21 lub nowszej. Dodatkowo rozważ wzmocnienie walidacji nazw użytkowników o blokowanie znaków HTML.
Inne podatności w Grav Admin
Oryginalny opis (angielski, źródło NVD)
Grav Admin (getgrav/grav-plugin-admin2) versions <= 2.0.19 contain a stored cross-site scripting vulnerability in the tHtml() function (src/lib/stores/i18n.svelte.ts), which substitutes untrusted parameters such as usernames into translation templates before parsing the result as markdown. Grav's server-side username validation (DataUser::isValidUsername) blocks filesystem-dangerous characters but not <, >, ", or ', allowing an attacker to register a username containing an HTML payload. When an administrator views a UI surface that renders the username through tHtml()—such as the two-factor force-disable confirmation prompt or the 'page is locked' editor notice—the payload executes in their authenticated session. Fixed in 2.0.21.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

