漏洞描述
FFmpeg是一个完整的跨平台解决方案,用于记录、转换流式传输音频和视频,可用于预览生成和视频转换的视频编码软件。已知FFmpeg可以处理可能包含对外部文件的引用的HLS播放列表,可以使用AVI文件中的GAB2字幕块来触发此功能,再通过XBIN编解码器检索转换节点的本地文件,从而导致了可以在转码后的视频里包含了本地文件。
影响范围
经测试FFmpeg 3.2.2、3.2.5和2.6.8版本均存在该漏洞,其它版本未经系统性测试,请按漏洞检测脚本进行自行排查。
漏洞危害
经验证该漏洞可导致读取本地任意文件,危害较大。经研究人员验证,Google,Yahoo,Youtube等门户、视听网站以及支持流转码服务的业务已被爆出存在该漏洞。国内支持流转码的网站也可能有存在该漏洞的风险,请速排查。
漏洞检测
下载测试脚本,
https://github.com/neex/ffmpeg-avi-m3u-xbin/blob/master/gen_xbin_avi.py
生成恶意 read.avi 文件
python3 gen_xbin_avi.py file:///etc/passwd read.avi
将 read.avi 上传到目标网站,查看视频中是否会将 /etc/passwd 文件内容渲染至视频流中。
修复方案
1、请升级受影响版本至FFmpeg 3.3.2版本。
2、将file://等危险协议类型添加到黑名单。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/55049.html