Pull to refresh

Comments 25

Что характерно, очень многие уязвимости (включая описанную в статье и ffmpeg'шную) растут из большого количества редкоиспользуемых возможностей софта, сделанных разработчиками, такое ощущение, просто что бы было, без чёткого понимания кому это надо и как это будут использовать. Где-то тут поневоле начинаешь ценить Unix-way и KISS :)
Мейтейнер GM в ответном письме говорит, чтобы
(а) ему показали эксплойт для GM
(б) советует использовать переменную окружения MAGICK_CODER_STABILITY=PRIMARY

http://www.openwall.com/lists/oss-security/2016/05/04/3
Спасибо, добавил в пост.
UFO just landed and posted this here
Во многих дистрибутивах есть security-репозитории, куда попадают только обновления базопасности. Эти обновления должны совершаться автоматически ежедневно (или чаще). Кто их не настраивает, как говорят на лоре — ССЗБ.
интересно, как защитить imagick в PHP.
policy.xml он очевидно не интересуется.
сам спросил, сам и отвечу: в debian php_imagick читает полиси не из /etc, а из /usr/lib

Интересуется. Посмотрите через strace, он читает кучу файлов на старте.
Подскажите плиз а как защитить ffmpeg/avconv от такой же болячки?
От такой же это от какой?
Из аналогичной, которую вы привели в статье: https://habrahabr.ru/company/mailru/blog/274855/
В статье по ссылке указаны возможное решения рпоблемы в виде изоляции ffmpeg
По-моему, на данный момент уже должны быть доступны патчи, устраняющие проблему. Кажется, они даже уже были доступны на момент написания того поста.

Я проверил GraphicsMagick (у меня под рукой оказалась версия 1.3.20 2014-08-16 Q8, не уверен, что это прям свежак), он подвержен как минимум чтению локальных файлов через label (CVE-2016-3717), правда, рендерится только первая строчка файла. Возможно, это как-то обходится, но суть в том, что пользователям GM всё-таки стоит начать беспокоиться. SSRF через url точно не работает.

policy.xml не обязательно лежит в /etc/ImageMagick


Но команда convert -list policy подскажет какой именно файл используется, и что ваши настройки поняты и используются. Пример:


$ convert -list policy

Path: /etc/ImageMagick-6/policy.xml
  Policy: undefined
    rights: None 
  Policy: Coder
    rights: None 
    pattern: EPHEMERAL
  Policy: Coder
    rights: None 
    pattern: URL
  Policy: Coder
    rights: None 
    pattern: HTTPS
  Policy: Coder
    rights: None 
    pattern: MVG
  Policy: Coder
    rights: None 
    pattern: MSL

Path: [built-in]
  Policy: Undefined
    rights: None 

Отсюда

Добавил в пост, спасибо.

В разных источниках отключают разные декодеры. Компиляция:

Парсер победил меня. Вот:
<!-- CVE-2016-3714 -->
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="HTTP" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="FTP" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />

Есть источник? Там же наверняка есть эксплойты к этим дополнительным паттернам, я бы проверил. Мне кажется, на деле они покрываются теми, что указаны на imagetragick.com.

https://bugzilla.redhat.com/show_bug.cgi?id=1332492#c3
https://www.imagemagick.org/discourse-server/viewtopic.php?f=4&t=29588

За пол дня ещё несколько приехало.

Это посты от 3 мая, то есть, либо незадолго до публичного раскрытия, либо сразу после него (не помню точное время). Больше похоже на попытку перебдеть. Текущий policy-конфиг работает для всех известных на данный момент PoC. Не могу говорить с полной уверенностью, но ощущение, что часть строк там ничего не делает. Были бы пруфы, можно было бы что-то обсуждать.

Посты редактируют. Чему верить, а чему нет — личное дело каждого. Моё дело поделиться тем, что нашел.

На imagetragick.com обновили рекомендуемый policy.xml, он теперь что-то среднее из тех, которые по вашим ссылкам. Обновил пост.

Если кому пригодится:

1. Ищем, где инклудится конфиг:
strace -f convert 2>&1 | grep policy

2. В раздел добавляем:
  <policy domain="coder" rights="none" pattern="EPHEMERAL" />
  <policy domain="coder" rights="none" pattern="URL" />
  <policy domain="coder" rights="none" pattern="HTTPS" />
  <policy domain="coder" rights="none" pattern="MVG" />
  <policy domain="coder" rights="none" pattern="MSL" />
  <policy domain="coder" rights="none" pattern="TEXT" />
  <policy domain="coder" rights="none" pattern="SHOW" />
  <policy domain="coder" rights="none" pattern="WIN" />
  <policy domain="coder" rights="none" pattern="PLT" />
Sign up to leave a comment.

Articles