IPBUF安全漏洞报告
English
CVE-2026-41061 CVSS 5.4 中危

CVE-2026-41061: AVideo存储型XSS漏洞

披露日期: 2026-04-21

漏洞信息

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

相关标签

存储型XSSWWBN AVideoCVE-2026-41061正则表达式绕过Web安全

漏洞概述

WWBN AVideo是一个广泛使用的开源视频平台。在29.0及以下版本中存在一个安全漏洞,攻击者利用`isValidDuration()`函数正则表达式校验不严的缺陷,能够在视频时长字段注入恶意HTML/JavaScript脚本。这些脚本被持久化存储后,当其他用户访问趋势页面、播放列表或视频画廊时即可触发,造成存储型跨站脚本攻击,可能窃取用户会话信息。

技术细节

该漏洞的核心在于`objects/video.php`第918行的`isValidDuration()`函数。该函数使用正则表达式`/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/`来验证视频时长格式。由于正则表达式末尾缺少`$`结束锚点,它仅检查字符串开头是否匹配时间格式(如12:34:56),而忽略后续内容。攻击者因此可以在合法时间后追加`<script>`等恶意标签。数据被存入数据库后,前端在渲染趋势页、播放列表等页面时,直接调用`Video::getCleanDuration()`并输出未经过滤的时长数据,导致恶意脚本在受害者浏览器中执行。

攻击链分析

STEP 1
1. 漏洞识别
攻击者发现`isValidDuration()`函数的正则表达式缺少结束锚点,允许绕过验证。
STEP 2
2. 构造载荷
攻击者构造包含合法时间前缀(如12:34:56)和恶意JavaScript后缀的字符串。
STEP 3
3. 注入载荷
攻击者通过视频编辑或上传接口,将恶意载荷作为视频时长提交并保存到数据库。
STEP 4
4. 触发漏洞
普通用户访问包含该视频的趋势页面、播放列表或画廊。
STEP 5
5. 执行攻击
服务器返回未转义的恶意代码,受害者浏览器解析并执行脚本,导致Cookie窃取等后果。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC Payload for the duration field // The regex accepts '12:34:56' and ignores the rest var malicious_payload = "12:34:56<script>alert('XSS');</script>"; // HTTP Request Example /* POST /updateVideo HTTP/1.1 Host: target.com Content-Type: application/x-www-form-urlencoded duration=12%3A34%3A56%3Cscript%3Ealert%281%29%3C%2Fscript%3E */

影响范围

WWBN AVideo <= 29.0

防御指南

临时缓解措施
建议立即升级官方修复补丁。若无法立即升级,应在服务端输出层对所有时长数据进行HTML转义处理,或部署Web应用防火墙(WAF)拦截包含<script>标签的请求参数。

参考链接

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