IPBUF安全漏洞报告
English
CVE-2026-34989 CVSS 9.0 严重

CVE-2026-34989 CI4MS 存储型XSS漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-34989
漏洞类型
存储型跨站脚本
CVSS评分
9.0 严重
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
CI4MS

相关标签

XSSCI4MSCodeIgniter存储型XSSWeb安全CVE-2026-34989

漏洞概述

CI4MS是基于CodeIgniter 4的CMS系统,在31.0.0.0版本之前存在存储型XSS漏洞。由于应用未能正确过滤用户在更新个人资料名称(如全名或用户名)时提交的输入,攻击者可注入恶意JS代码。该代码被存储在服务器端,并在后续渲染多个应用视图时被不安全地输出,从而导致跨站脚本攻击。

技术细节

该漏洞源于CI4MS在处理用户个人资料更新请求时,缺乏对输入数据的严格过滤和转义机制。攻击者利用已有的低权限账户登录系统,在修改个人资料信息的“全名”或“用户名”字段中插入经过构造的JavaScript载荷(例如`<script>alert(document.cookie)</script>`)。后端接收请求后,未对特殊字符进行清洗便将其直接存储至数据库。当管理员或其他用户浏览包含该用户资料的页面时,服务器端应用在渲染视图时未进行上下文相关的HTML实体编码,导致浏览器解析并直接执行恶意脚本。由于CVSS向量中S:C,该脚本可能通过窃取管理员Cookie、会话令牌或利用管理员权限进行进一步的操作,造成严重的安全后果。

攻击链分析

STEP 1
步骤1
攻击者注册或使用现有的低权限账户登录CI4MS系统。
STEP 2
步骤2
攻击者导航至个人资料设置页面,定位到用户名或全名输入框。
STEP 3
步骤3
攻击者在输入框中注入恶意的JavaScript载荷(如<script>标签或事件处理器)并提交保存。
STEP 4
步骤4
后端系统将包含恶意代码的数据无过滤地存储在数据库中。
STEP 5
步骤5
当管理员或其他用户访问包含该用户资料的页面时,应用从数据库读取数据并渲染。
STEP 6
步骤6
浏览器解析未经过滤的HTML/JS代码,触发XSS攻击,执行恶意脚本。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for Stored XSS in CI4MS Profile Name // 1. Login as a regular user. // 2. Navigate to the Profile Update page. // 3. Inject the following payload into the 'Full Name' or 'Username' field. let payload = '<img src=x onerror=alert("XSS_CVE-2026-34989")>'; // 4. Submit the form to save the profile. // 5. Wait for an administrator or another user to view the profile. // 6. The JavaScript will execute in the victim's browser context. console.log("Payload injected: " + payload);

影响范围

CI4MS < 31.0.0.0

防御指南

临时缓解措施
建议立即升级至修复版本。若无法升级,应在后端渲染视图时对用户可控的姓名字段进行HTML转义处理,防止脚本注入。

参考链接

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