← 返回首页|安全博客

MagicYUV解码器曝严重漏洞 任意代码执行威胁百万应用

📅 2026-07-28

一、漏洞概述:PixelSmash的危害与影响

今年7月,JFrog安全研究团队披露了代号"PixelSmash"的严重漏洞(CVE-2026-8461,CVSS 8.8),影响全球最广泛的媒体处理框架FFmpeg。该漏洞存在于MagicYUV解码器中,是一个堆越界写入漏洞,已在FFmpeg中潜伏16年之久。

PixelSmash的危害范围极为广泛。FFmpeg被几乎所有视频应用所链接——从桌面播放器到媒体服务器,从Linux缩略图生成器到云端转码管道,再到AI/ML视频管线。攻击者只需上传一个50KB的特制视频文件(AVI、MKV或MOV格式),即可触发漏洞。

JFrog安全团队已演示了完整利用链:在Jellyfin中上传恶意文件至媒体库,自动触发ffprobe元数据提取并获得反向Shell;在Nextcloud中通过预览生成功能以www-data权限执行任意命令。用户仅需上传文件,无需额外操作即可被攻陷。

二、攻击原理:slice_height舍入计算中的陷阱

PixelSmash的根因是MagicYUV解码器在计算色度平面高度时存在舍入不一致。MagicYUV是一种无损视频编解码格式,其解码器在每个默认FFmpeg构建中默认启用。

视频编码使用YUV颜色空间,分为亮度平面(Y)和色度平面(U、V)。对于YUV420P亚采样格式,色度平面的纵向分辨率只有亮度平面的一半。MagicYUV以水平条带编码视频,解码器将slice_height从亮度行转换为色度行,使用向上舍入的右移操作。

当slice_height为奇数时,向上舍入为每个条带增加额外一行。随着条带累积,这些额外行超出缓冲区边界。攻击者将slice_height设为31,使第二个条带写到第16行——但缓冲区只有0-15行,触发了堆越界写入,每次可注入640个攻击者控制的字节。

更关键的是,这640字节恰好覆盖了FFmpeg堆中的AVBuffer结构体。其free函数指针可被篡改为libc的system()函数地址,opaque指针指向攻击者的Shell命令。当av_frame_unref清理帧时,该指针调用就变成了system恶意命令的执行,实现了从越界写入到任意命令执行的跳跃。

三、供应链冲击与AI/ML新兴攻击面

PixelSmash本质上是一个供应链安全漏洞。FFmpeg的libavcodec被数百个下游项目作为传递依赖嵌入,MagicYUV解码器默认启用,下游项目无需显式选择就继承了漏洞。JFrog测试的所有主流项目中,只有Plex采用了--disable-decoders编译和白名单防御措施。

除传统媒体播放器外,PixelSmash还延伸到AI/ML领域。vLLM在处理恶意视频时三次崩溃,LLaVA等多模态视觉语言模型解码管线同样受影响。OpenCV的cv2.VideoCapture、Hugging Face Datasets的视频数据集加载、NVIDIA DALI数据处理管线均在受影响范围内,一个恶意视频即可导致训练集群中断。

攻击链仍在演进。当前完整RCE利用需在ASLR关闭下演示,但JFrog在FlashSV解码器中另发现了一个信息泄露漏洞,理论上可与MagicYUV链式结合以绕过ASLR。此外,BitTorrent种子下载是危险的零点击攻击向量:攻击者将恶意AVI伪装成电影上传到公共Tracker,用户下载后自动触发媒体服务器扫描,无需任何点击即可被攻陷。

四、检测修复与青海政企安全建议

检测是否受影响很简单。运行ffmpeg -decoders | grep magicyuv,输出包含VFS..D magicyuv则说明存在漏洞。修复方案包括:升级FFmpeg到含补丁版本;重新编译时添加--disable-decoder=magicyuv禁用解码器;或对magicyuv.c应用7行最小补丁,增加slice_height验证检查。

对于青海地区政企单位,如果使用了基于Web的媒体服务器、视频监控分析系统或AI视频管线,建议立即自查。等保2.0安全计算环境要求对系统组件进行漏洞管理,PixelSmash正是需要纳入扫描范围的严重漏洞。青海本地中小企业若缺乏安全团队,可委托第三方进行FFmpeg版本检测和补丁更新,降低供应链风险。

© 2026 西宁惠康电子有限公司 | 青海·西宁