IPBUF安全漏洞报告
English
CVE-2026-34559 CVSS 9.1 严重

CVE-2026-34559: CI4MS存储型XSS漏洞

披露日期: 2026-04-01

漏洞信息

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

相关标签

XSSStored XSSCI4MSCodeIgniterCVE-2026-34559Web安全

漏洞概述

CI4MS是基于CodeIgniter 4的CMS系统。在0.31.0.0版本之前,系统在创建或编辑博客标签时未正确过滤用户输入。攻击者可在标签名字段注入恶意JavaScript脚本,该脚本会被存储在服务器端。当用户访问公共标签页面或管理界面时,恶意脚本会在未经过滤的情况下被渲染执行,导致存储型XSS漏洞,可能窃取用户凭证或执行恶意操作。

技术细节

该漏洞源于CI4MS在处理博客标签功能时的输入验证缺失。攻击者需要低权限账户(PR:L),利用网络向量(AV:N)进行攻击。具体来说,应用在创建或编辑标签时,未对`Tag Name`字段进行充分的HTML实体编码或输入清洗。攻击者构造包含`<script>`或`onerror`等事件的恶意Payload作为标签名提交。由于后端直接存储该数据,且前端在展示标签列表时未进行上下文相关的输出编码,导致Payload在管理员或其他用户浏览器中解析执行。由于作用域为S:C(范围改变),该漏洞可能影响更广泛的用户群。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标系统为CI4MS CMS,并确认版本低于0.31.0.0。
STEP 2
2. 获取权限
攻击者注册或使用已有的低权限账户登录系统(满足PR:L要求)。
STEP 3
3. 注入Payload
攻击者在“创建/编辑博客标签”功能中,在标签名字段输入恶意JavaScript代码(如<img src=x onerror=alert(1)>)并提交。
STEP 4
4. 存储恶意数据
服务器端未对输入进行清洗,将包含恶意脚本的标签名存储在数据库中。
STEP 5
5. 触发漏洞
当管理员或普通用户访问包含该标签的公共页面或管理后台时,服务器返回未经过滤的标签名,浏览器解析并执行恶意脚本。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for Stored XSS in CI4MS Blog Tags // This script demonstrates injecting a payload into the tag name field // Step 1: Attacker sends a request to create a malicious tag fetch('/tags/create', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: 'tag_name=<img src=x onerror=alert(1)>&description=XSS_PoC' }); // Step 2: When an admin or user visits the tags listing page, // the malicious tag name is rendered, triggering the alert. // Vulnerable endpoint: /tags or /admin/tags

影响范围

CI4MS < 0.31.0.0

防御指南

临时缓解措施
若无法立即升级,建议暂时禁用博客标签创建功能,或编写WAF规则拦截包含常见XSS特征字符(如<script>, onerror=, javascript:)的请求,仅允许受信任的管理员IP访问管理后台。

参考链接

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