FFmpeg 3.0 - 8.1.2 vf_swaprect Out-of-Bounds Write via NV12 Frame Processing 漏洞概述 FFmpeg 3.0 到 8.1.2 版本中存在一个堆溢出漏洞,攻击者可以通过提供精心构造的 NV12 视频帧(具有奇数宽度)来利用此漏洞。该漏洞发生在 视频过滤器中,具体是在 函数中,该函数重用了一个临时行缓冲区,用于处理平面 0 的单字节像素步进,导致在处理两个字节每样本交错的色度平面时,发生 18 字节的 memcpy 到 17 字节的堆分配中,从而引发堆损坏和进程崩溃,可能导致代码执行。 影响范围 受影响版本: FFmpeg >= 3.0, <= 8.1.2 CVE: CVE-2026-65706 CWE: - CWE-787 Out-of-bounds Write - CWE-131 Incorrect Calculation of Buffer Size CVSS: 8.5 CVSS V4 Vector: CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N 修复方案 Pull Request: 链接 Patch Commit: 链接 描述 FFmpeg 3.0 到 8.1.2 版本中存在一个堆溢出漏洞,攻击者可以通过提供精心构造的 NV12 视频帧(具有奇数宽度)来利用此漏洞。该漏洞发生在 视频过滤器中,具体是在 函数中,该函数重用了一个临时行缓冲区,用于处理平面 0 的单字节像素步进,导致在处理两个字节每样本交错的色度平面时,发生 18 字节的 memcpy 到 17 字节的堆分配中,从而引发堆损坏和进程崩溃,可能导致代码执行。 参考 Pull Request: 链接 Patch Commit: 链接 贡献者 Adrian Junge (vurlo)