CVE-2026-33051Craft CMS在5.9.0-beta.1至5.9.10版本中存在存储型跨站脚本漏洞。漏洞源于元素编辑器在渲染创建者全名时,错误地结合使用了`Template::raw()`和字符串插值,导致未经过滤的HTML输出。低权限用户可将全名修改为恶意脚本。当管理员在登录状态下查看相关内容时触发脚本,导致攻击者获取管理员权限,造成系统被接管。
该漏洞位于Craft CMS的元素编辑器组件中,具体涉及修订/草稿上下文菜单的渲染逻辑。开发人员在使用`Template::raw()`函数包装`Craft::t()`的字符串插值结果时,未对用户提供的`fullName`字段进行充分的转义处理,导致该字段被直接作为原始HTML渲染在页面上。
利用该漏洞的攻击链如下:首先,攻击者以低权限用户(如作者)身份登录系统,进入个人资料编辑界面,将“全名”字段修改为包含恶意JavaScript代码的Payload。接着,攻击者创建一个新的内容条目,并执行两次保存操作,以确保系统生成包含该用户信息的修订记录。
当管理员用户登录后台并查看该条目的历史版本或草稿菜单时,系统会调用存在漏洞的渲染逻辑,将攻击者的全名作为HTML解析。此时,恶意脚本将在管理员的浏览器上下文中执行。由于脚本运行在管理员的会话环境中,它可以利用管理员的高权限身份向后端发送请求,例如将攻击者的账户角色直接提升为管理员,从而实现权限提升。