CVE-2025-65956Formwork是一款基于平面文件的内容管理系统(CMS)。该系统在2.2.0版本之前存在一个严重的安全漏洞:由于博客标签字段未对用户输入进行充分的过滤和转义,攻击者可以在标签字段中注入恶意JavaScript代码,形成存储型跨站脚本攻击(Stored XSS)。攻击者只需要拥有该CMS的有效用户凭据,即可利用此漏洞。一旦恶意脚本被存储,任何访问或编辑受影响的博客文章的用户的浏览器都会自动执行攻击者植入的代码。该漏洞具有持久性特点,影响范围涵盖所有使用受影响版本Formwork CMS的用户。由于攻击发生在特权管理环境中,攻击者可能通过XSS窃取管理员会话Cookie、劫持管理员账号、篡改网站内容,甚至进一步进行横向移动攻击。官方已在2.2.0版本中修复此问题,建议所有用户立即升级。
该漏洞的根本原因在于Formwork CMS的博客标签输入处理逻辑缺少输入验证和输出编码机制。当用户创建或编辑博客文章时,系统直接将标签字段的用户输入存储到数据库中,而在后续页面渲染时未对标签内容进行HTML实体编码。具体技术细节如下:1) 输入层面:系统接收用户输入的博客标签字符串后,未进行白名单过滤或XSS特殊字符转义,直接存储到数据文件或数据库中;2) 存储层面:恶意Payload如<script>alert(document.cookie)</script>被原样保存;3) 输出层面:当其他用户访问包含该标签的博客页面时,系统从存储中读取标签数据并直接嵌入HTML响应,未进行任何编码处理;4) 执行层面:用户浏览器将恶意标签内容解析为可执行脚本,导致JavaScript代码在受害者浏览器上下文中执行。攻击者可利用此漏洞窃取用户会话令牌、绕过CSRF防护、执行任意UI操作等。修复方案需在输入阶段进行严格过滤,并在输出阶段对所有不可信数据进行HTML实体编码。