FFmpeg曝任意文件读取漏洞

2017-06-27

近日,白帽在HackerOne平台上报了ffmpeg漏洞,该漏洞利用ffmpeg的HLS播放列表处理方式,可导致本地文件曝光,目前POC已经公开,安全风险高危,为了确保您的业务正常,防止数据泄露,建议您尽快排查和升级。

最近有白帽在HackerOne平台上报了ffmpeg漏洞,该漏洞利用ffmpeg的HLS播放列表处理方式,可导致本地文件曝光。

漏洞描述

6月24日,HackerOne平台名为neex的白帽子针对俄罗斯最大社交网站VK.com上报了该漏洞,并因此获得1000美元奖金。

ffmpeg可处理HLS播放列表,而播放列表中已知可包含外部文件的援引。neex表示他借由该特性,利用avi文件中的GAB2字幕块,可以通过XBIN codec获取到视频转换网站的本地文件。

6月25日,另一位白帽子Corben Douglas (@sxcurity)表示他在看过neex的报告后进一步研究了ffmpeg,他针对发现的漏洞写了完整的重现过程,利用包含外部文件援引的HLS播放列表,导致可任意读取本地文件。

2098098172.jpg

影响范围

漏洞盒子技术人员测试发现,FFmpeg 3.2.2、3.2.5和2.6.8版本均存在该漏洞,其它版本未经系统性测试,请按漏洞检测脚本进行自行排查。

漏洞盒子技术人员表示,该漏洞可导致读取本地任意文件,危害较大。经研究人员验证,Google,Yahoo,Youtube等门户、视听网站以及支持流转码服务的业务已被曝出存在该漏洞。国内支持流转码的网站也可能有存在该漏洞的风险,请速排查。

漏洞重现

1) 下载脚本 https://github.com/neex/ffmpeg-avi-m3u-xbin/blob/master/gen_xbin_avi.py

2) 运行脚本:python3 gen_xbin_avi.py file:///etc/passwd sxcurity.avi

3) 访问https://arxius.io,上传sxcurity.avi

4) 等待上传处理视频

5) 录像处理完成后,点击播放就可以看到/etc/passwd的内容

示例:

显示/etc/passwd内容 : https://arxius.io/v/6c7d9a96

显示/etc/issue内容: https://arxius.io/v/5471dfe6

展示利用成功效果

点此下载已经处理的avi文件

修复方案

1.请升级受影响版本至FFmpeg 3.3.2版本

2.将file://等危险协议类型添加到黑名单


写评论...