FFmpeg 高危漏洞 PixelSmash:一个视频文件控制系统

FFmpeg 高危漏洞 PixelSmash:一个视频文件就能控制系统

FFmpeg 被曝出高危漏洞 CVE-2026-8461(代号 PixelSmash),攻击者只需构造一个恶意视频文件,即可在目标系统上执行任意代码。该漏洞由 JFrog 安全研究团队发现并于 5 月 13 日报告,FFmpeg 已于 6 月 17 日发布 8.1.2 版本修复。

FFmpeg

漏洞技术细节

PixelSmash 是 FFmpeg libavcodec 库中 MagicYUV 解码器的一个堆越界写入漏洞(CWE-787)。根因在于 MagicYUV 解码器处理视频帧 slice 时,帧分配器和解码器对色度平面高度的计算不一致,导致一行堆缓冲区溢出。

CVSS 3.1 评分 8.8(高危),攻击向量为网络,无需特权,需要用户交互(打开文件或触发自动扫描)。

JFrog 研究人员将这个漏洞从简单的崩溃升级到了稳定的远程代码执行。攻击者通过在特定越界偏移处放置 NUL 终止的 shell 命令,可以在 FFmpeg 进程因后续堆损坏崩溃之前获得 shell 执行。攻击载荷仅需一个 50KB 的 AVI、MKV 或 MOV 文件。

触发场景:不只是"打开"才会中招

这个漏洞的可怕之处在于被动触发。以下场景都可能中招:

  • 桌面播放器:用户在 VLC、Kodi、mpv 等播放器中打开恶意文件
  • 文件管理器缩略图:在 GNOME、KDE、XFCE 中浏览包含恶意文件的文件夹,文件管理器的缩略图生成器(ffmpegthumbnailer)会自动解码视频
  • 媒体服务器自动扫描:上传文件到 Jellyfin、Emby 等媒体服务器后,自动库扫描会调用 ffprobe 提取元数据,触发解码
  • 云存储预览:Nextcloud 的 Movie preview provider、Immich、PhotoPrism 等会自动生成视频预览
  • NAS 和智能电视:生成视频缩略图或预览时触发
  • BT 下载零点击攻击:如果 BT 客户端将下载的媒体文件直接放入受监控的媒体库文件夹,下载完成后自动扫描即可执行载荷

JFrog 在 Jellyfin(通过自动库扫描)和 Nextcloud(通过视频预览提供器)上分别演示了完整的 RCE 利用链。

影响范围

MagicYUV 解码器在 FFmpeg 上游构建和所有主流发行版(Ubuntu、Debian、Fedora、Arch、Alpine)8.1.2 之前的版本中默认启用。JFrog 确认以下应用受影响:

  • 媒体播放器:Kodi、mpv
  • 媒体服务器:Jellyfin、Emby
  • 云存储/相册:Nextcloud、Immich、PhotoPrism
  • 直播/录屏:OBS Studio
  • 桌面环境:GNOME、KDE、XFCE 的缩略图生成器

例外:Plex 使用自定义 FFmpeg 构建,解码器被禁用且有最小白名单,不受此漏洞影响。

修复建议

  • 立即更新 FFmpeg 到 8.1.2 或更高版本
  • 如不需要 MagicYUV 解码器,可在编译时禁用
  • 检查系统:运行 ffmpeg -decoders | grep magicyuv,如果输出包含 VFS..D magicyuv,说明存在风险
  • Jellyfin 已更新捆绑的 FFmpeg 版本,PhotoPrism 正在添加文件格式黑名单

来源:JFrog · SecurityWeek · BleepingComputer

相关推荐