CVE-2026-43874WWBN AVideo 是一个广泛使用的开源视频平台。在 29.0 及其之前的版本中,发现了一个严重的安全漏洞。该漏洞源于系统之前针对 CVE-2026-40911 的服务器端缓解措施存在逻辑缺陷。原修复方案仅尝试剥离位于 $json['msg'] 路径下的恶意载荷,然而中继函数 msgToResourceId() 在处理消息时,优先从 $msg['json'] 路径读取内容。这一逻辑差异使得未经过滤的恶意代码能够绕过安全检查。攻击者无需认证即可利用此漏洞,通过 WebSocket 向已登录用户发送包含恶意 JavaScript 的消息,导致受害者的浏览器执行任意代码。
该漏洞技术细节涉及 AVideo 平台中 YPTSocket 插件的消息处理机制。为了修复 CVE-2026-40911 中披露的 eval 代码注入风险,开发者添加了过滤逻辑,专门检查并清除 $json['msg'] 中的 autoEvalCodeOnHTML 参数。然而,在处理 WebSocket 消息的中继函数 msgToResourceId() 中,代码逻辑是先检查 $msg['json'] 数组,如果该数组存在且包含有效数据,则直接使用该数据作为出站消息,而不再检查 $msg['msg']。这就导致了过滤机制的旁路。攻击流程如下:首先,攻击者访问 plugin/YPTSocket/getWebSocket.json.php 获取 WebSocket 连接令牌,该过程无需身份验证。接着,攻击者连接到 WebSocket 服务器,并构造一个特制的 JSON 消息。攻击者将恶意的 autoEvalCodeOnHTML 载荷放置在顶层的 json 字段中,而不是 msg 字段。当服务器处理此消息时,由于 $msg['json'] 存在,过滤逻辑被跳过,载荷被原样转发给由 to_users_id 指定的目标在线用户。最后,受害者的客户端脚本接收到消息后,会调用 eval() 函数执行载荷。由于攻击者可以指定受害者,这可能导致针对性的攻击,如窃取 Session 或执行恶意操作。该漏洞的 CVSS 3.1 评分为 7.2,属于高危漏洞,且攻击复杂度低,无需用户交互。