2026 年 8 月 30 日,VulnCheck 与 GitHub Security Advisory 同步披露 AVideo 视频直播平台的流密钥泄露漏洞 CVE-2026-82645,CVSS 4.0 评分 9.2、CVSS 3.1 评分 8.6,类型为 CWE-347 加密签名校验不当。AVideo 是一套开源视频分享与直播系统,提供 YouTube、Facebook、Twitch 等外部平台的多路重推流能力。截至披露时,AVideo 当前 commit e01e41ecc 及更早版本均受影响,官方尚未发布带修复标签的 release,使用方需要手动打补丁或参考 VulnCheck 提供的修复 PR。
漏洞技术细节
漏洞核心位于 plugin/Live/view/Live_restreams/getLiveKey.json.php 端点。该端点仅当请求携带 token 参数时即绕过 Live::canRestream() 鉴权与重推流归属校验,并把任意重推流条目的 stream_key 与 stream_url 直接返回给调用方。token 的生成调用了 AVideo 内部的 encryptString(),本质是对一个整数 ID 的 AES-256-CBC 加密,密钥派生方式可被逆向,加密使用固定 IV 且未附加 MAC。最严重的是 AVideo 已经在 view/url2Embed.json.php 端点提供了公开的加密预言机,攻击者借助该端点即可对任意整数 ID 加密生成合法 token,再把伪造 token 拼到 getLiveKey.json.php 的请求里即可读出任何用户的 YouTube/Facebook/Twitch 推流密钥。
利用链构造与危害
实际利用中,攻击者无需账号即可完成:第一步访问 url2Embed.json.php 暴露的加密接口对目标 liveId 做 AES-256-CBC 加密拿到伪造 token;第二步把 token 拼到 getLiveKey.json.php 的查询参数中读取该 liveId 对应的 stream_key 与 stream_url;第三步把 stream_key 复制到 OBS、Streamlabs、vMix 等推流软件即可冒充受害者向 YouTube、Twitch、Facebook 直播任意内容。利用过程不依赖认证会话、不需要用户交互,且因加密预言机本来就对外开放,攻击流量与正常流量难以区分。在直播电商、付费课程、企业内训、政企直播场景中,stream_key 失窃将直接造成营收损失、品牌声誉损害与监管合规问题;若失窃账号在外部平台开启了点播回放、VOD 存档或商业化变现,攻击者还可以借此洗流量、挂广告、植入钓鱼页面实施进一步社工活动。
影响评估
CWE-347 反映的是核心签名校验失效,配合可公开调用的加密预言机形成无需认证、无需用户交互的完整利用链。该漏洞被 VulnCheck 与 rajivraj 同步披露,影响所有仍在维护中的 AVideo 部署。在直播电商、付费课程、企业内训、政企直播等场景中,stream_key 失窃将直接造成营收损失、品牌声誉损害与监管合规问题。若失窃账号在外部平台开启了点播回放、VOD 存档或商业化变现,攻击者还可以借此洗流量、挂广告、植入钓鱼页面。
修复与缓解
官方修复建议包括:从 getLiveKey.json.php 中移除 token 旁路逻辑、强制要求 Live::canRestream() 通过后再返回密钥、为 token 增加用户绑定、过期时间与 HMAC 签名、把固定 IV 改为随机 IV 并在 AVideo 全站统一使用经过认证的加密模式。临时缓解可先在反向代理/WAF 层阻断 /Live_restreams/getLiveKey.json.php 的外部访问,并立即轮换所有外部直播平台推流密钥。检测侧应重点关注 getLiveKey.json.php 访问日志、同一 IP 在短时间内对多个不同 liveId 的密钥拉取、url2Embed.json.php 加密预言机的异常调用以及外部直播平台对未知推流源的告警。