CVE-2026-43878WWBN AVideo 是一个开源的视频平台。在其 29.0 及以下版本中,发现了一个存储型跨站脚本(XSS)漏洞。该漏洞存在于 `plugin/Meet/iframe.php` 文件中,由于未对用户提交的 `user` 和 `pass` 查询参数进行适当的转义处理,系统直接将这些受攻击者控制的内容回显到 `<script>` 标签内的 JavaScript 双引号字符串字面量中。如果目标系统上存在公开的 Meet 日程,攻击者无需进行身份认证即可利用此漏洞。攻击者可以通过诱导受害者访问特制的恶意链接,打破 JavaScript 字符串限制,从而在受害者的浏览器上下文中执行任意 JavaScript 代码。该漏洞的 CVSS 评分为 6.1,属于中危级别。
该漏洞的根本原因是 WWBN AVideo 在处理 `plugin/Meet/iframe.php` 的请求时,缺乏对输出内容的编码和转义机制。具体而言,后端代码直接获取 HTTP GET 请求中的 `user` 和 `pass` 参数,并将其嵌入到 HTML 页面的 JavaScript 代码中。例如,代码逻辑可能类似于:`var user = "[USER_INPUT]";`。
由于没有过滤双引号(`"`)、反斜杠(`\`)等特殊字符,攻击者可以注入闭合引号来截断当前的字符串变量,并插入恶意的 JavaScript 代码。例如,当 `user` 参数被设置为 `"; alert(document.cookie); //` 时,生成的 JavaScript 代码将变为:`var user = ""; alert(document.cookie); //";`。这将导致 `alert` 函数被执行,而 `//` 会将后续原本的代码注释掉。
根据 CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N,攻击可以通过网络发起(AV:N),攻击复杂度低(AC:L),无需特权(PR:N),但需要用户交互(UI:R),即受害者需要点击攻击者构造的链接。虽然需要用户交互,但如果存在公开的 Meet 日程,攻击者无需登录即可访问该接口。成功利用后,攻击者可窃取 Session Cookie、劫持用户会话或执行其他恶意操作,影响机密性和完整性。