CVE-2026-85600Grav Admin before 2.0.21 Stored XSS via username
Updated under an hour ago ()
Does this affect you?
It affects getgrav grav-plugin-admin2. Add what you run to find out whether that includes you.
No exploitation reported and no EPSS estimate yet.
Do this next
Free account, 1 product
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.
- CVSS
- 5.4 MEDIUM (v3.1, CNA)CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Weakness (CWE)
- CWE-79
- Known exploited
- Not in CISA's KEV catalog
- EPSS (exploitation in the next 30 days)
- Not loaded for this CVE
- Assigned by
- VulnCheck
- NVD analysis
- Deferred
- Record last updated
- Sep 5, 2026
- First seen by InfoSec Signals
- Oct 9, 2026
Affected products
getgrav grav-plugin-admin2 getgrav:grav_plugin_admin2 (from the name) | through 2.0.19; 2.0.21 not affected | CNA record |
References
- https://github.com/getgrav/grav/security/advisories/GHSA-96xm-c5hr-59rxvendor-advisory
- https://www.vulncheck.com/advisories/grav-admin-before-2.0.21-stored-xss-via-usernamethird-party-advisory
The CVE record on cve.org NVD's entry
The CVE record is authoritative. Products marked “from the name” were identified from the CNA's free-text names, not a CPE, and are matched less certainly. This product uses the NVD API but is not endorsed or certified by the NVD.