IPBUF安全漏洞报告
English
CVE-2021-47925 CVSS 6.4 中危

CVE-2021-47925 CMDBuild存储型XSS漏洞

披露日期: 2026-05-10

漏洞信息

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

相关标签

XSSCMDBuild存储型XSSWeb安全文件上传漏洞

漏洞概述

CMDBuild 3.3.2版本中存在严重的存储型跨站脚本(XSS)漏洞。经过身份验证的攻击者可利用系统在卡牌创建和文件上传端点的输入验证缺陷,通过精心设计的输入注入任意Web脚本或HTML。攻击者既可以通过Employee卡参数植入恶意代码,也可以上传包含载荷的SVG文件。当管理员或其他用户访问被污染的记录或预览附件时,恶意脚本将在其浏览器上下文中执行,进而窃取敏感信息或劫持用户会话。

技术细节

该漏洞主要源于CMDBuild 3.3.2在处理用户输入和文件上传时缺乏有效的安全过滤机制。攻击者首先需要获得一个低权限的账户,随后利用系统在创建卡片(如Employee卡片)时的参数注入点,或者在classes端点上传特制的SVG文件。SVG文件作为一种矢量图形格式,支持嵌入XML和JavaScript代码,若服务器未对上传文件内容进行深度检测,攻击者可将恶意载荷封装在SVG中。当这些恶意数据被持久化存储到数据库后,一旦管理员或其他具有高权限的用户浏览受影响的卡片记录或尝试预览上传的附件,服务器会直接将未转义的HTML/JS内容发送给客户端。受害者的浏览器解析响应后,恶意脚本立即在当前用户的会话上下文中运行。由于是存储型XSS,攻击者无需诱骗用户点击特定链接,只需等待受害者访问特定页面即可实施攻击,从而窃取凭证、篡改数据或进行钓鱼操作。

攻击链分析

STEP 1
侦察与获取权限
攻击者注册或获取一个CMDBuild系统的低权限账户(由于PR:L要求)。
STEP 2
载荷注入
攻击者在创建Employee卡片时,在Description等参数中注入XSS Payload,或者构造包含恶意脚本的SVG文件并通过文件上传接口上传。
STEP 3
数据持久化
服务器将未经过滤的恶意数据存储在数据库中,等待被访问。
STEP 4
触发漏洞
管理员或其他高权限用户浏览包含恶意数据的卡片列表,或点击预览上传的SVG附件。
STEP 5
执行攻击
受害者的浏览器解析并执行恶意脚本,攻击者窃取Session Cookie或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC 1: Injection via Employee Card Parameter --> POST /classes/Employee HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded Description=<img src=x onerror=alert('XSS')>&Name=Test <!-- PoC 2: Malicious SVG File Upload --> <svg xmlns="http://www.w3.org/2000/svg" onload="alert('XSS')"> <rect width="100" height="100" /> </svg>

影响范围

CMDBuild 3.3.2

防御指南

临时缓解措施
在未升级版本中,建议禁用SVG文件上传功能,或使用WAF拦截针对/classes端点的恶意参数注入,并强制用户启用HttpOnly标志以保护Cookie。

参考链接