CVE-2020-36955CVE-2020-36955是Grav CMS系统中发现的一个中危安全漏洞,存在于Grav CMS 1.6.30版本及其配套的Admin Plugin 1.9.18版本中。该漏洞属于存储型跨站脚本攻击(Stored XSS),允许已认证的低权限攻击者通过页面标题字段注入恶意JavaScript代码。由于恶意脚本被存储在数据库中,当管理员或其他用户在管理面板或前台网站访问受影响页面时,注入的恶意脚本将自动执行。攻击者可利用此漏洞窃取会话Cookie、劫持用户账户、进行钓鱼攻击或在用户浏览器中执行任意操作。受影响系统为开源内容管理系统Grav,该系统广泛应用于个人博客、企业网站和小型Web应用中。由于该漏洞需要认证才能利用,但其影响范围涵盖所有访问受影响页面的用户,因此被评定为CVSS 6.4分的中危漏洞。
该漏洞的根本原因在于Grav CMS Admin Plugin在处理页面标题输入时缺乏充分的输入验证和输出编码。当用户在创建或编辑页面时,页面标题字段的内容未经适当过滤即被存储到数据库中,并在后续页面渲染过程中直接输出到HTML页面。具体而言,攻击者首先需要使用低权限账户登录Grav CMS管理后台,然后创建一个新页面或在现有页面的标题字段中注入恶意脚本,例如:<script>alert(document.cookie)</script>。由于系统未对标题内容进行HTML实体编码,当管理员或普通用户访问该页面时,浏览器会将其作为有效脚本执行。攻击者可利用此漏洞获取受害者的认证会话信息,进而可能提升权限或执行其他恶意操作。漏洞影响范围包括管理面板中的页面列表、页面预览功能以及前台网站对页面内容的展示。修复方案应在输入端对用户提交的内容进行严格验证,并在输出端对所有动态内容进行正确的HTML编码。