CVE-2026-33395Discourse是一款开源论坛平台,其 discourse-graphviz 插件在特定版本之前存在存储型XSS漏洞。该漏洞允许经过身份认证的低权限用户通过精心构造的DOT图定义注入恶意JavaScript代码。此漏洞仅影响未启用内容安全策略(CSP)的Discourse实例。攻击者可利用此漏洞在目标用户的浏览器环境中执行恶意脚本,从而窃取会话凭证、篡改用户数据或执行其他未授权操作。
该漏洞源于 discourse-graphviz 插件在处理用户输入的 DOT 语言图形定义时,缺乏严格的输入过滤和输出编码。攻击者首先需要注册并登录获取低权限账户,随后在发布内容时嵌入带有恶意载荷的 DOT 代码(例如在节点标签中注入 HTML/JS)。当服务器处理并存储该内容后,一旦其他用户(特别是管理员)访问包含该恶意图形的页面,且该实例未配置 CSP 策略,浏览器便会解析并执行注入的恶意脚本。由于是存储型 XSS,恶意代码会持久化存储在数据库中,具有持续的攻击能力。