近日,全球领先的多媒体框架FFmpeg被曝出漏洞,通过该漏洞可在播放漏洞视频或在转码过程中触发本地文件,读取获得指定文件。FFmpeg已于4月发布更新,但仍有大量Android及iOS APP使用该开源程序用于播放功能。360互联网安全中心提醒开发者,尽快更新版本,以避免漏洞可能给手机用户造成的安全威胁。
在FFmpeg支持的多种编码格式中,HLS(HTTP Live Streaming)是将视频流分成多个ts流文件,在开始新的流媒体会话时,需先下载包含所有会话数据的m3u8(播放列表 Playlist)文件,通过解析m3u8文件得到ts流的http地址,最终实现播放功能。
图1:本地打开m3u8文件并使用FFmpeg解析时就会触发漏洞
但是在解析m3u8文件地址时,除了指定的http地址外还可以获得符合FFmpeg官方的任意URL地址,埋下了ssrf漏洞隐患;同时官方还支持file协议及concat协议,用于拼接url地址。因此,只需要一段视频,就能够轻松获得手机中的文件内容。
因为开放源码的便利性和强大的多媒体功能,FFmpeg被广泛用于Android及iOS APP的播放功能,百度云、爱奇艺视频、网易云音乐、斗鱼TV、疯狂猜词等多款手机用户常用的APP均使用了FFmpeg库文件,大量用户可能受此漏洞威胁。
360互联网安全中心对国内主流应用市场的124371款app进行扫描,发现有超过6000款应用受此漏洞影响,占到总数的5%,受影响APP类型涵盖各个类型,其中仅通讯社交、便捷生活、影音视听三类就占到一半以上
。
图2:受FFmpeg漏洞影响APP分类top10
进一步对受漏洞影响的6314款app所使用的ffmepg库文件分析发现,使用率最高的libeasemod_jni.so属于环信SDK的库文件,排名第二的libcyberplay-core.so均为目前最流行的视频SDK,拥有千万级的用户量。
图3:使用率最高的FFmpeg文件库top10
针对该漏洞可能产生的安全威胁,FFmpeg已与4月进行了更新。但使用FFmpeg库文件的APP尚未进行更新,仍然严重威胁用户的安全。据此,360互联网安全中心为开发者尽快更新版本,并提出更新建议:
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版本。