最近有白帽在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播放列表,导致可任意读取本地文件。
影响范围
漏洞盒子技术人员测试发现,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://等危险协议类型添加到黑名单
*参考来源:HackerOne,本文作者:Sphinx,转载请注明来自FreeBuf.COM