FFmpeg远程文件窃取漏洞

admin 2022年4月22日18:42:37评论149 views字数 1309阅读4分21秒阅读模式

FFmpeg远程文件窃取漏洞

FFmpeg远程文件窃取漏洞


1
漏洞起源


FFmpeg 远程文件窃取漏洞最初来源是国外的漏洞平台,去年已在CTF比赛中被使用。官方今年一月份发布修复版本并公布了该漏洞编号CVE-2016-1897(CNNVD-201601-270)/CVE-2016-1898(CNNVD-201601-271)。在今年blackhat也会有这个漏洞的相关议题。


关于FFmpeg组件

FFmpeg的是一款全球领先的多媒体框架,支持解码,编码,转码,复用,解复用,流媒体,过滤器和播放几乎任何格式的多媒体文件。支持无数编码的格式,比如,HLS。

HLS(HTTP Live Streaming)是Apple公司开发的一种基于HTTP协议的流媒体通信协议。它的基本原理是把一个视频流分成很多个ts流文件,然后通过HTTP下载,每次下载一份文件。在一个开始一个新的流媒体会话时,客户端都会先下载一个m3u8(播放列表 Playlist)文件,里面包含了这次HLS会话的所有数据。


2
漏洞原理


问题就出在解析这个m3u8文件的时候,解析文件会得到ts流的http地址,我们并不一定非要得到一个视频文件流,可以是任意url地址,只要符合ffmpeg官方的协议头,所以造成了ssrf漏洞;并且不巧的是,官方还支持file协议,官方还有自己的concat协议,用来拼接url,所以出现了本地文件读取漏洞。下面是一个m3u8文件的格式:

FFmpeg远程文件窃取漏洞

然后构造一个媒体文件,去访问这个m3u8文件:

FFmpeg远程文件窃取漏洞

当本地打开这个文件,通过ffmpeg去解析的时候,将会触发漏洞:

FFmpeg远程文件窃取漏洞

3
漏洞危害


通过这个漏洞,可以通过上传漏洞视频,然后播放,或者在转码过程中,触发本地文件读取以获得服务器文件。漏洞刚爆出时,在服务器端影响较大,国内主流视频网站均受到波及。后经过跟进发现,安卓和苹果客户端如果使用了自己编译的有漏洞的ffmpeg库,同样能触发本地文件读取漏洞,这样通过一段视频,就能获得手机中的文件内容了,漏洞初始只能读取一行文件内容,经过安全评估确认可以读取多行文件及整个文件内容。

4
漏洞修复


通过查看官方源码,在解析HLS编码时,ffmpeg禁止了所有协议除了http(s)和file协议,修改方法如下:

FFmpeg远程文件窃取漏洞

FFmpeg远程文件窃取漏洞

如果有使用ffmpeg的程序,请参照下面的版本进行升级:

FFmpeg 2.8.x系列升级至2.8.5或以上;

FFmpeg 2.7.x系列升级至2.7.5或以上;

FFmpeg 2.6.x系列升级至2.6.7或以上;

FFmpeg 2.5.x系列升级至2.5.10或以上;

或直接使用FFmpeg 3.0.x版本。

5
市场APP安全状况调查


通过对国内主流应用市场124371款全行业app进行抽样扫描,发现受此漏洞影响的产品数量为6314款,占总数的5%。并对其中受影响的app所使用的ffmepg库文件做了个top10统计。

FFmpeg远程文件窃取漏洞

FFmpeg远程文件窃取漏洞

其中使用率最高的libeasemod_jni.so属于环信sdk所带的库文件,libcyberplay-core.so是某开放云播放器的Android SDK。受影响app行业分类top10如下,其中通讯社交类应用受影响最大。

FFmpeg远程文件窃取漏洞


来源:bobao.360.cn

FFmpeg远程文件窃取漏洞

FFmpeg远程文件窃取漏洞

原文始发于微信公众号(CNNVD安全动态):FFmpeg远程文件窃取漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月22日18:42:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   FFmpeg远程文件窃取漏洞https://cn-sec.com/archives/870916.html

发表评论

匿名网友 填写信息