多个 FFmpeg 漏洞允许攻击者通过恶意视频文件破坏内存

多个 FFmpeg 漏洞允许攻击者通过恶意视频文件破坏内存

💡 原文中文,约1500字,阅读约需4分钟。
📝

内容提要

FFmpeg发现多个高危漏洞,影响媒体解析、解码、过滤和编码组件,可致堆损坏、崩溃或任意代码执行。涉及视频去噪、字幕过滤、音频解码、PNG编码及IAMF解复用等,部分漏洞泄露内存信息。上游已修复,建议立即更新,否则限制处理不受信媒体并隔离工作负载。

🔎

延伸解读

漏洞影响范围与触发条件

这些漏洞影响FFmpeg的多个组件,包括视频去噪、字幕过滤、音频解码、PNG编码和IAMF解复用等。攻击者可通过提供恶意媒体文件触发,例如精心构造的视频、字幕或音频文件。部分漏洞需要特定配置(如-reinit_filter 0)才能触发,而另一些则可能在默认处理流程中被利用。

潜在危害与风险

漏洞可能导致堆内存损坏、崩溃、拒绝服务,甚至任意代码执行。其中CVE-2026-66038可能泄露未初始化的堆内存,削弱ASLR保护,增加其他攻击的成功率。CVE-2026-66037仅需171字节文件即可触发数GB内存分配,可能导致内存耗尽。

缓解措施与注意事项

建议立即升级到包含修复的FFmpeg版本。若无法及时修补,应限制处理不受信任的媒体文件,隔离转码工作负载,并设置内存限制。避免对不受信任的视频使用-reinit_filter 0等风险配置,以减少漏洞被利用的机会。

Q&A

FFmpeg 最近发现了哪些类型的安全漏洞?

FFmpeg 最近发现了多个高危漏洞,影响媒体解析、解码、过滤和编码组件。这些漏洞可导致堆内存损坏、崩溃、拒绝服务,甚至任意代码执行,部分漏洞还会泄露内存信息。

CVE-2026-66036 是什么漏洞?如何触发?

CVE-2026-66036 是 vf_hqdn3d 视频去噪滤波器中的漏洞,CVSS 评分为 7.7。当使用 -reinit_filter 0 选项禁用滤波器图重新初始化时,如果视频帧分辨率在第一帧之后逐渐增加,FFmpeg 会根据初始帧宽度分配行历史缓冲区,后续较大帧可能导致堆内存损坏。

CVE-2026-66039 影响哪个组件?攻击者如何利用?

CVE-2026-66039 是 MACE6 音频解码器中的整数溢出和堆缓冲区溢出漏洞。恶意 CAF 文件可利用 bytes_per_packet 和 frames_per_packet 的超大值触发,导致内存分配不足和越界写入。

CVE-2026-66037 是什么问题?它有什么影响?

CVE-2026-66037 是 IAMF 解复用器中的不受控制的资源消耗漏洞,CVSS 评分为 7.1。一个精心构造的 171 字节文件可通过攻击者控制的 count_label 字段触发数 GB 的内存分配,可能导致格式探测期间内存不足。

CVE-2026-66038 如何导致信息泄露?

CVE-2026-66038 影响 LCL/ZLIB 视频解码器,有效但较短的 zlib 流可能导致输出帧的部分内容未初始化。FFmpeg 随后可能将未初始化的堆内容复制到可观察输出中,从而泄露分配器数据并削弱 ASLR 保护。

如何修复或缓解这些 FFmpeg 漏洞?

应立即将 FFmpeg 更新到包含上游修复程序的版本,相关提交包括 5d7112c、8670835、e7cbfd1、aafb5c6、b506faf 和 4da9812。如果无法立即修补,应限制对不受信任媒体的处理,隔离转码工作负载,强制执行内存限制,并避免使用 -reinit_filter 0 等有风险的过滤器配置。

🏷️

标签

➡️

继续阅读