Обнаружена критическая уязвимость в пакете ImageMagick

Обнаружена критическая уязвимость в пакете ImageMagick

В пакете ImageMagick, который часто используется web-разработчиками для преобразования изображений (например, создания миниатюр),устранена порция уязвимостей, среди которых имеется критическая проблема (CVE-2016-3714), позволяющая организовать выполнение кода при обработке специально оформленных изображений.

В том числе проблеме подвержены пользователи пакетов PHP imagick, Ruby rmagick, Ruby paperclip и Node.js imagemagick. Уязвимости присвоено имя "ImageTragick".

Исследователями уже подготовлен рабочий прототип эксплоита, который вероятно уже взят злоумышленниками на вооружение для проведения атак (имеются сведения, что информация об уязвимости стала доступна посторонним до обнародования проблемы). Всем пользователям рекомендуется незамедлительно обновить ImageMagick, но на момент написания новости исправление доступно лишь в видепатча, сомнительного с точки зрения эффективности защиты. Обновления пакетов для дистрибутивов еще не сформированы: Debian, Ubuntu,RHEL/CentOS, SUSE, openSUSE, FreeBSD, Fedora, сообщает opennet.ru.

В качестве обходного пути защиты пользователям ImageMagick рекомендуется отключить проблемные типы обработчиков (EPHEMERAL, URL, HTTPS, MVG, MSL) в файле конфигурации /etc/ImageMagick/policy.xml. Кроме того, предлагается реализовать проверку поступающих на обработку изображений на предмет соответствия расширения файла и его идентификатора в заголовке файла (GIF - "47 49 46 38", JPEG - "FF D8" и т.п.).

Уязвимость вызвана ненадлежащей проверкой имён файлов при вызове внешних обработчиков, которые запускаются при помощи функции system() с использованием одной строки, без разделения опций. Так как параметр с именем файла (%M) передаётся напрямую без чистки и имеется возможность передачи произвольных спецсимволов, не составляет труда осуществить подстановку любых shell-команд. Например, обработчик HTTPS оформлен как '"wget" -q -O "%o" "https:%M"', что позволяет вместо имени хоста указать "https://example.com`ls -la`" или "https://example.com|ls -la" и выполнить команду 'ls -la', например 'convert 'https://example.com"|ls "-la' out.png'.

Опасность проблемы усиливает то, что она проявляется не только при прямом вызове, но и при косвенном обращении к ресурсам. Например, типы SVG и MVG позволяют ссылаться на внешние ресурсы, что даёт возможность организовать атаку через передачу файлов SVG и MVG с нормальным именем, которое пройдёт первый уровень проверки в web-приложении. Например, для атаки можно загрузить SVG-файл с тегом '‹image xlink:href="https://example.com/image.jpg"|ls "-la"›' или файл exploit.mvg с командой 'url(https://example.com/image.jpg"|ls "-la)', что приведёт к выполнению 'ls -la' при их обработке в ImageMagick. 

Более того, так как ImageMagick определяет тип по содержимому заголовка, а не расширению, атакующий может загрузить проблемные SVG- и MVG-файлы под видом других типов изображений, например, вместо вышеприведённого exploit.mvg загрузить файл exploit.jpg, который на деле будет обработан как файл MVG.

Кроме CVE-2016-3714, в ImageMagick также выявлено несколько менее опасных уязвимостей, принцип эксплуатации которых также основывается на манипуляции с файлами в форамте MVG:

  • CVE-2016-3718 - возможность инициирования внешних запросов HTTP GET или FTP при обработке специально оформленных изображений. Например, для формата MVG можно указать 'url(http://example.com/)';
  • CVE-2016-3715 - возможность удаления файлов при обработке специально оформленных изображений. В MVG-файле может быть вызван обработчик 'ephemeral' (например, "image over 0,0 0,0 'ephemeral:/tmp/delete.txt'"), который удаляет файлы после их чтения;
  • CVE-2016-3716 - возможность перемещения файлов при обработке специально оформленных изображений через применение протокола msl. Например, доступен интересный эксплоит (secgeek.net/POC/POC.gif), позволяющий использовать данную уязвимость для установки PHP Shell;
  • CVE-2016-3717 - доступ к произвольным локальным файлам на сервере через использование псевдопротокола 'label' (например, "image over 0,0 0,0 'label:@/etc/passwd'"). После выполнения "convert file_read.mvg out.png" на результирующем изображении будет текст с содержимым файла.
AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Исследователь взломал терминал оплаты за минуту через скрытый дебаг-порт

Исследователь обнаружил серьёзную уязвимость в платёжных терминалах Worldline Yomani XR, которые используются по всей Швейцарии — от кафе и магазинов до автосервисов. Оказалось, что получить полный контроль над устройством можно всего за минуту, если иметь к нему кратковременный физический доступ.

Хотя Yomani XR считается защищённым и «взломоустойчивым» устройством, на практике его сервисный порт предоставляет незащищённый root-доступ.

Любой, кто знает, где искать, может подключить простой кабель к скрытому разъёму и получить полноценный root shell без пароля и шифрования.

Как работает эксплойт

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

После подключения через последовательный интерфейс устройство показало обычный загрузочный лог Linux, а при вводе логина «root» — сразу предоставило доступ к консоли.

 

Ни пароля, ни защиты. С этого момента злоумышленник может внедрить вредоносную программу, перехватывать транзакции или использовать терминал как точку входа в корпоративную сеть.

Аппаратная защита не спасла

Интересно, что сам терминал технически выполнен на высоком уровне. В нём есть датчики вскрытия, механизмы обнаружения вмешательства и даже резервная батарея, поддерживающая защиту при отключении питания. Если кто-то пытается разобрать устройство, система автоматически выводит предупреждение «TAMPER DETECTED» и блокирует работу.

Однако эти меры не распространяются на дебаг-порт, который остаётся активным и незащищённым.

Что происходит под капотом

Анализ прошивки показал, что терминал использует два отдельных вычислительных ядра. Одно запускает «незащищённую» Linux-среду для работы сети и бизнес-логики, второе — зашифрованную и подписанную прошивку, которая отвечает за приём платежей и взаимодействие с картой.

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

 

Пока нет подтверждений, что кто-то уже использовал эту уязвимость в реальных атаках. Однако исследователи предупреждают: риск остаётся высоким, особенно для устройств, расположенных в общественных местах.

Операторам терминалов рекомендуют:

  • проверить устройства на наличие сервисных разъёмов и следов вскрытия,
  • связаться с поставщиками, чтобы установить обновления, которые отключают дебаг-порт.

Компания Worldline уже уведомлена об уязвимости и, по сообщениям, исправила проблему в новых версиях прошивки. Но пока обновления не установлены повсеместно, под прочным корпусом терминала всё ещё скрыт неожиданный «чёрный ход».

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

RSS: Новости на портале Anti-Malware.ru