LINUX.ORG.RU

Уязвимость в FFMpeg, позволяющая читать любые файлы в системе

 ,


6

6

Сотрудник Mail.ru Максим Андреев опубликовал информацию об уязвимости в популярном наборе свободных библиотек FFMpeg.

Если сформировать специальный видеофайл (расширение не имеет значения) и загрузить его на видеохостинг, то злоумышленник сможет прочесть любой файл на сервере. Если удастся каким-то образом заставить обычного пользователя скачать вредоносный файл (дать ему прямую ссылку, выложить на торрент-трекер), как минимум, можно узнать имя пользователя и какую-нибудь ещё непубличную информацию. В случае с Ubuntu FFmpeg передаст злоумышленнику первую строку указанного злоумышленником файла (например, /etc/passwd того пользователя, который просто скачал файл, даже не запуская его (FFMpeg в Ubuntu используется для создания превью, отображаемого в файловом менеджере).

Кроме того, уязвимости подвержены все видеопроигрыватели, использующие FFMpeg.

В качестве мер защиты предлагается запускать ffmpeg в изолированном окружении, либо ограничить ему доступ к сети.

>>> Подробности

anonymous

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 1)

Стоп, а как злоумышленник получит содержимое файла-то? По сети отправится? То есть, там, выходит, выполнение произвольного кода? Зачем тогда так ветиевато писать, и так понятно, чем это может грозить (и не только этим). Решето, конечно, эпическое…

upd:

Перешёл по ссылке, стало понятно. Нет, не произвольный код. Но уязвимость всё равно эпичная.

В качестве мер защиты предлагается запускать ffmpeg в изолированном окружении, либо ограничить ему доступ к сети.

Можно просто пересобрать ffmpeg без поддержки HLS (HTTP Live Streaming). Уязвимость реализуется через него.

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 2)

Супер. По ссылке статья автора в подробностях применения.

surefire ★★★
()

FFMpeg в Ubuntu используется для создания превью

По умолчанию же используется totem thumbnailer, который использует gstreamer

Или нет?

fornlr ★★★★★
()

ffmpeg в изолированном окружении

Объясните, пожалуйста, как это? Создать отдельного позователя и под ним только кино смотреть, или как-то по-другому? Ну или ссылочку, куда копать.

anonymous
()
Ответ на: комментарий от Psych218

Можно просто пересобрать ffmpeg без поддержки HLS (HTTP Live Streaming). Уязвимость реализуется через него.

Это оно?

+ + network                : Enables network streaming support
Deleted
()

Я правильно понимаю, что уязвимость эксплуатируется только в том случае, если я сам передам злоумышленнику получившийся видеофайл? То есть с моего десктопа нельзя так просто через эту дыру украсть файлы?

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)

там в конце статьи автор писал, что это как-то неправильно считать уязвимостью самого ffmpeg
как бы это особенность протокола и его полная реализация

ii343hbka ★★★
()
Ответ на: комментарий от Psych218

HLS (HTTP Live Streaming).

Пагади это значит школотвич и прочий гудгейм с скдватэвэ мона ламануть, да?)))))

anonymous
()
Ответ на: комментарий от Deleted

Это вообще работа с сетью. На хабре пишут что достаточно добавить к опциям --disable-demuxer='hls,applehttp'. Но можно и отстрелить вообще всё общение с сетью, да...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

На хабре пишут что достаточно добавить к опциям --disable-demuxer='hls,applehttp'

Но такого юза нет, так что я отстрелил всю сеть от греха подальше.

Deleted
()
Ответ на: комментарий от anonymous

Объясните, пожалуйста, как это? Создать отдельного позователя и под ним только кино смотреть, или как-то по-другому? Ну или ссылочку, куда копать.

Использовать Qubes OS :)

X-Pilot ★★★★★
()
Ответ на: комментарий от Pinkbyte

Жаль, не удастся пошутить на эту тему. Не даром у меня сеть задизейблена для них - это весьма вероятный вектор атак, а уж учитывая что этот комбайн задействован повсюду…

wakuwaku ★★★★
()
Ответ на: комментарий от surefire

Ну так , в виндовс 10 поддержку матрешки же добавили на радость анимешникам.

GPU декодирование из коробки работает, что еще надо?

fornlr ★★★★★
()
Ответ на: комментарий от fornlr

я их вообще везде и для всего отклчаю, т. к. ненужно

amorpher ★★★★★
()

Существует такой формат видео, как HLS (HTTP Live Streaming). Он разработан компанией Apple для передачи потокового видео

Это заговор яблочников

Polugnom ★★★★★
()
Ответ на: комментарий от trycatch

Это логичное следствие запихивания в одну либу всего возможного барахла на свете.

Только мне послышалось systemd ? :-)

AS ★★★★★
()
Ответ на: комментарий от amorpher

с totem'ом беда - он не умеет в vaapi/vdpau. попробую использовать gst-play - с ним тоже безопасно будет? кстати, libav же вроде форк ffmpeg'а - откуда инфа, что в нем нет такой же баги?

anonymous
()
Ответ на: комментарий от fornlr

поддержку матрешки

это контейнер, а не кодек. внутри всё тот же

GPU декодирование из коробки работает

оно самое

anonymous
()
Ответ на: комментарий от deterok

А причем тут «от рута», или это комментарий к первой, серверной части баги? Всеравно не понимаю, где вы прочитали про рута?

Еще раз кратко, чем это грозит для пользователя: скачиваете файл, файловый менеджер запускает генератор превью на основе ffmpeg / запускаете проигрывание в плеере (который использует lib** из ffmpeg) и ваш любой локальный файл (путь и полное имя которого злоумышленник выбирает заранее, при подготовке файла) утекает через сеть на сервер хакера. Защититься для пользователя - пересобрать с отключенной сетью (не всегда удобно), с отключенным HLS demuxer'ом (99.9% вы его не используете в вашем плеере). Решение лучше - изолировать, т.к. мало ли где там еще можно сделать подобные трюки.

hint
()
Ответ на: комментарий от false

Нет, не правильно

Почему? Я не вижу в оригинальной статье, как злоумышленник может заставить ffmpeg закачать файл куда-либо в сеть. ffmpeg может только скачать файл из сети (или с локального компьютера) и закодировать его в видео.

proud_anon ★★★★★
()
Ответ на: комментарий от proud_anon

Как же нет? Там ближе к концу обьясняется. Если для превьюшек(к примеру) у тебя юзается ffmpeg, то скачав файл к себе на компьютер, можно заставить ffmpeg прочитать содержимое произвольного файла с правами пользователя и отправить на адрес, который содержится в скачанном тобой файле

false ★★★★★
()

Сотрудник Mail.ru

Местные элитарии как обычно саснулей :D

anonymous
()

Какая, к чёрту, уязвимость? Уязвимостью это становится, когда человек начинает использовать программу как сервис без включения мозгов и чтения мануалов. По сути: они не фильтруют пользовательский ввод, а следовательно - ССЗБ. Или SQL инъекции это тоже баг в SQL сервере?

h4tr3d ★★★★★
()
Ответ на: комментарий от fornlr

Gstreamer всего лишь обёртка над в том числе тем же ffmpeg.

anonymous
()
Ответ на: комментарий от Deleted

Редактируй ебилд в локальном оверлее. Для других пакетов можно задействовать EXTRA_ECONF, но не для ffmpeg.

anonymous
()
Ответ на: комментарий от kostik87

Это раз, а два: кто вообще не фильтрует пользовательский ввод? Банальный ffprobe, file, просто скрипт и форсирование формата на вводе. Ловкий трюк и разработчики сервиса-идиоты, не более.

h4tr3d ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.