CVE-2026-34246CtrlPanel开源计费软件在1.1.1及之前版本中存在存储型跨站脚本(XSS)漏洞。该漏洞位于管理员角色管理接口,由于未对角色名称和颜色字段进行适当的输出过滤,导致具有角色编辑权限的管理员可注入恶意HTML/JavaScript脚本。该载荷被持久化存储在数据库中,当其他管理员访问角色管理页面时,恶意脚本将在其浏览器中自动执行,进而可能导致会话劫持、凭证窃取或权限提升。
该漏洞源于`app/Http/Controllers/Admin/RoleController.php`文件中的`datatable()`方法。该方法直接将`$role->name`和`$role->color`变量插值到HTML的`<span>`元素及其`style`属性中,完全未进行消毒处理。此外,代码链中调用了`.rawColumns(['actions', 'name'])`,指示DataTables插件将该列作为原始HTML渲染,从而绕过了框架默认的自动转义机制。攻击者(需具备角色创建或编辑权限)可在“名称”或“颜色”字段中注入恶意载荷(如`<img src=x onerror=alert(1)>`)。当任何管理员加载`/admin/roles`页面时,服务器会返回包含恶意代码的数据,浏览器随即解析并执行该脚本。攻击者可利用此漏洞窃取管理员的Cookie进行会话劫持,植入虚假登录框进行钓鱼,或利用管理员权限执行恶意操作,形成持久化的后门。