CVE-2026-85600: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') in getgrav grav-plugin-admin2
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.
CVSS v4.0
Score 5.1medium
Affected software
getgrav
grav-plugin-admin2
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Grav Admin (grav-plugin-admin2) is a stored cross-site scripting flaw in the tHtml() function located in src/lib/stores/i18n.svelte.ts. It improperly neutralizes input by substituting untrusted parameters such as usernames into translation templates before parsing the result as markdown. The server-side username validation (DataUser::isValidUsername) prevents filesystem-dangerous characters but does not filter out HTML special characters like <, >, ", or '. This allows an attacker to register a username containing an HTML payload. When an administrator views UI surfaces that render the username via tHtml(), such as the two-factor force-disable confirmation prompt or the 'page is locked' editor notice, the malicious payload executes in the administrator's authenticated session. The vulnerability is fixed in version 2.0.21.
Potential Impact
An attacker can register a specially crafted username containing HTML/JavaScript code that executes in the context of an administrator's authenticated session when viewed in certain UI components. This can lead to session hijacking, unauthorized actions, or other impacts typical of stored XSS vulnerabilities. The CVSS 4.0 score is 5.1 (medium severity), reflecting network attack vector, low complexity, no privileges required, and user interaction needed.
Mitigation Recommendations
Upgrade Grav Admin (grav-plugin-admin2) to version 2.0.21 or later, where this vulnerability is fixed. Patch status is not explicitly confirmed in the input data, but the description states the issue is fixed in 2.0.21. No other mitigations are indicated.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-04T11:00:28.731Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a9aada1acd9273b4981da09
Added to database: 09/04/2026, 11:38:09 UTC
Last enriched: 09/07/2026, 11:22:34 UTC
Last updated: 10/17/2026, 18:48:23 UTC
Views: 59
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.