CVE-2026-85600 Grav Admin before 2.0.21 Stored XSS via username
Stored XSS in Grav Admin allows attackers to execute scripts in admin sessions via malicious usernames, potentially leading to account takeover.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- None listed
What is CVE-2026-85600?
CVE-2026-85600 is a medium-severity cross-site scripting vulnerability in getgrav grav-plugin-admin2, published on 4 Sep 2026. Any signed-in user can exploit it over the network, and only if a user opens a file or follows a link.
Official description
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.
Weakness: CWE-79
Which versions are affected by CVE-2026-85600?
How do I fix CVE-2026-85600?
No fix has been published for CVE-2026-85600 yet. Limit exposure of the affected software until one is available.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2026-85600 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-85600 exists.
Sources
Also known as GHSA-7wfh-5xcc-cx4q, GHSA-96xm-c5hr-59rx.