关键漏洞信息 漏洞类型: Stored Cross-Site Scripting (XSS) 受影响的软件包: solspace/craft-freeform 受影响的版本: >= 5.0.0, <= 5.14.6 已修复的版本: 5.14.7 CVE ID: CVE-2026-26188 报告人: Prav33N-Sec 漏洞描述 概要: 认证的低权限用户可以将任意HTML/JS注入到Craft Control Panel (CP)的构建器和集成视图中。 用户控制的表单标签和集成元数据通过 渲染,没有进行任何净化,导致存储的XSS在任何管理员查看构建器/集成屏幕时执行。 受影响产品: 生态系统: Packagist (Craft CMS插件) 包名: solspace/craft-freeform 版本: <= 5.14.6(最新观察到),可能影响所有5.x直到被修复。 漏洞细节 根本原因: 多个用户控制的字符串(字段标签,部分标签,集成图标,简短名称,WYSIWYG预览)在没有净化的情况下注入到React组件中,使用 。 证据: 在捆绑的CP JS中对用户控制的属性调用,路径为 。 PoCs (概念验证) 基于标签的XSS: 1. 在Craft CP中,创建/编辑一个Freeform字段,设置其标签为 。 2. 打开包含该字段的表单构建器视图。 3. 警报成功执行(存储的XSS)。 集成图标SVG: 1. 将集成的"图标SVG"设置为 。 2. 打开集成CP视图。 3. 脚本执行。 影响 在管理员CP中执行任意JS;会话/CSRF令牌窃取;通过DOM驱动的动作可能实现完全的管理员接管。 解决方案 在传递给 之前净化/HTML编码所有用户控制的字符串,或避免在标签/标题/图标中使用。 服务器端: 在保存字段、集成元数据、WYSIWYG内容时剥离/转义不允许的标签。 添加回归测试,使用 载荷确保在构建器/集成视图中没有执行。 权宜之计 限制表单编辑权限,仅信任的管理员在修复之前才可使用。 考虑使用CSP禁用内联脚本(仅作为深度防御)。