🔐 CVE Alert

CVE-2026-85600

MEDIUM 5.4

Grav Admin before 2.0.21 Stored XSS via username

CVSS Score
5.4
EPSS Score
0.0%
EPSS Percentile
0th

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.

CWE CWE-79
Vendor getgrav
Product grav-plugin-admin2
Published Sep 4, 2026
Last Updated Sep 5, 2026
Stay Ahead of the Next One

Get instant alerts for getgrav grav-plugin-admin2

Be the first to know when new medium vulnerabilities affecting getgrav grav-plugin-admin2 are published — delivered to Slack, Telegram or Discord.

Get Free Alerts → Free · No credit card · 60 sec setup

CVSS v3 Breakdown

CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Affected Versions

getgrav / grav-plugin-admin2
0 ≤ 2.0.19

References

NVD ↗ CVE.org ↗ EPSS Data ↗
github.com: https://github.com/getgrav/grav/security/advisories/GHSA-96xm-c5hr-59rx vulncheck.com: https://www.vulncheck.com/advisories/grav-admin-before-2.0.21-stored-xss-via-username

Credits

🔍 alham-rizvi