Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-85600— Grav Admin before 2.0.21 Stored XSS via username

Quick assessment

Affected
getgrav grav
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Grav Admin(getgrav/grav-plugin-admin2)版本 2.0.19 及更早版本中存在一个存储型跨站脚本(Stored XSS)漏洞,该漏洞位于 函数中(文件路径: )。该函数会将不可信参数(如用户名)代入翻译模板,并将结果作为 Markdown 进行解析。Grav 的服务端用户名校验逻辑( )虽然阻止了对文件系统有危险性的字符,但并未拦截 、 、 或 等 HTML 相关字符。这使得攻击者可以注册一个包含 HTML 载荷的用户名。当管理员访问任何通过 渲染用户名的用户界面(例如“强制禁用双

CVSS 5.4 · Medium

Possible ATT&CK Techniques 1 AI

T1046 · Network Service Discovery

Affected Version Matrix 2

VendorProduct Version RangeStatus
getgrav grav < 2.0.21 affected
2.0.21 unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-85600

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Grav Admin before 2.0.21 Stored XSS via username
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
在Web页面生成时对输入的转义处理不恰当(跨站脚本)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
getgrav grav 0 ~ 2.0.21 -

II. Public POCs for CVE-2026-85600

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-85600

登录查看更多情报信息。

Vendor Advisories for CVE-2026-85600 (2)

Same Patch Batch · getgrav · 2026-09-04 · 7 CVEs total

CVE-2026-85604 8.8 HIGH Grav before 2.0.19 Remote Code Execution via sort filter
CVE-2026-85599 7.2 HIGH Grav Shortcode Core before 6.2.5 Stored XSS via unescaped parameters
CVE-2026-85603 6.5 MEDIUM Grav Admin Plugin Path Traversal via Save As Language Code
CVE-2026-85598 6.4 MEDIUM Grav 2.0.0 through 2.0.17 Stored XSS via Modular Pages
CVE-2026-85601 5.4 MEDIUM Grav Admin before 2.0.20 Cross-Site Scripting via marked.js
CVE-2026-85602 5.3 MEDIUM Grav Form Plugin before 9.1.20 reCAPTCHA v3 Authentication Bypass

IV. Related Vulnerabilities

V. Comments for CVE-2026-85600

No comments yet


Leave a comment