FFmpeg 修复广泛使用的视频解码器中的 PixelSmash 漏洞
- 浏览次数 132
- 喜欢 0
新披露的名为 "PixelSmash" 的 FFmpeg 漏洞在某些条件下可能被利用在 Jellyfin 服务器上实现远程代码执行,并且还可以在 Kodi、Emby、Nextcloud、PhotoPrism 和 OBS Studio 等应用程序中触发拒绝服务(DoS)条件。
该漏洞编号为 CVE-2026-8461,是 MagicYUV 解码器中的堆越界写入漏洞。它获得了 8.8 的高严重性评分,可以通过 AVI、MKV 或 MOV 格式的恶意视频文件加以利用。
任何使用 libavcodec(FFmpeg 用于视频解码和编码的核心库)的应用程序都被视为易受攻击。
然而,如果地址空间布局随机化(ASLR)防御被禁用,或者通过链接另一个漏洞来绕过该保护,则有可能实现远程代码执行(RCE)。
根本原因与影响
软件供应链安全公司 JFrog 的研究人员表示,PixelSmash 源于 MagicYUV 处理切片(视频帧中可独立于图像其余部分解码的独立区域)的方式。
JFrog 解释道:“该漏洞是 MagicYUV 解码器切片处理中的单行堆缓冲区溢出,由帧分配器与解码器计算色度平面高度之间的不一致引起。”
当用户打开 AVI、MKV 或 MOV 视频文件、浏览包含该文件的目录(通过缩略图生成)或运行任何自动媒体摄取工作流时,可能触发 PixelSmash。
JFrog 发现,多个流行的媒体应用程序,如 Kodi、OBS Studio、PhotoPrism 以及 GNOME/KDE/XFCE 的缩略图生成器,都使用了启用了 MagicYUV 解码器的 FFmpeg,这使得它们容易受到 PixelSmash 攻击。
Slack、Discord、Telegram 和 WhatsApp 也可能容易受到 PixelSmash 攻击,因为它们使用 FFmpeg 生成服务器端视频预览,但未经过测试。
JFrog 首席研究员 Yuval Moravchick 演示了 PixelSmash 可用于在 Jellyfin 和 Nextcloud(启用了电影预览)实例上实现远程代码执行。
JFrog 表示:“为了展示现实世界的影响,我们通过正常的媒体库扫描流程,在 Jellyfin 10.11.9 媒体服务器(仅次于 Plex 的第二受欢迎的自托管媒体服务器)上实现了完全远程代码执行。”
“攻击路径:将精心构造的 MagicYUV AVI 下载到媒体库 -> Jellyfin 自动触发 ffprobe 进行元数据提取 -> OOB 写入触发 -> AVBuffer.free 被劫持为 system() -> 以 jellyfin 服务用户身份执行任意命令。”
然而,Moravchick 指出,RCE 利用需要禁用 ASLR(地址空间布局随机化),而 CVE-2026-8461 本身无法绕过此内存保护。
理论上,FFmpeg 的 FlashSV 解码器中的一个单独的信息泄露漏洞可以与 PixelSmash 链接以绕过 ASLR。
另一种攻击场景是通过种子下载,且无需用户交互。研究人员表示,攻击者可以播种一个恶意视频,瞄准将下载指向应用程序媒体库文件夹的 Jellyfin 用户。
“Jellyfin 的实时文件系统监视器检测到新文件并自动触发 ffprobe 元数据扫描。利用在扫描期间触发——AVBuffer.free 被劫持为 system(),攻击者的反向 shell 命令以 jellyfin 服务用户身份执行。”
即使在 RCE 被阻止或不可能的情况下,CVE-2026-8461 漏洞也足以在易受攻击的目标上可靠地实现拒绝服务(DoS)条件。
研究人员发现,广受欢迎的媒体服务器 Plex 使用了自定义的 FFmpeg 构建,其中解码器被禁用,并启用了最小允许列表,从而有效缓解了 PixelSmash 风险。
除了 FFmpeg 发布修复该漏洞的 8.1.2 版本外,Jellyfin 也更新了其捆绑的 FFmpeg 版本,PhotoPrism 正在努力添加文件格式阻止列表以防止潜在的利用。
Nextcloud 团队通过 HackerOne 收到了报告,但拒绝解决该漏洞,因为它存在于 Nextcloud 之外。
JFrog 发现了 PixelSmash(CVE-2026-8461)并于 5 月 13 日向 FFmpeg 安全团队报告。开发者在 6 月 17 日发布的 8.1.2 版本中解决了该问题。
研究人员警告称,PixelSmash 的攻击面巨大,因为 MagicYUV 解码器存在于数百个“信任 FFmpeg 安全处理不受信任输入”的项目中,将漏洞变成了一个供应链问题。