CVE-2016-3715

ImageMagick ImageMagick

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2021-11-03

Официальное описание

ImageMagick contains an unspecified vulnerability that could allow users to delete files by using ImageMagick's 'ephemeral' pseudo protocol, which deletes files after reading.

🛡️
Технический анализ и план устранения

Суть уязвимости

Злоумышленник может удалить произвольные файлы на сервере, отправив специально сформированное изображение для обработки. Уязвимость возникает при использовании псевдопротокола ephemeral:// (или ephemeral:), который удаляет исходный файл после его чтения. Если ImageMagick обрабатывает пользовательский ввод, содержащий путь к критическому системному файлу (например, /etc/passwd) в этом протоколе, файл будет удален.

Пример вредоносного кода в изображении (например, в метаданных SVG):

<image authenticate='ff' decode='https://example.com' size='400x400'>
  <read filename="ephemeral:/etc/passwd" />
  ...
</image>

Временное решение

Если немедленное обновление невозможно, заблокируйте опасные псевдопротоколы в политиках безопасности ImageMagick (policy.xml).

  1. Найдите или создайте файл конфигурации policy.xml. Обычные пути:

    • /etc/ImageMagick-6/policy.xml (для версии 6)
    • /etc/ImageMagick-7/policy.xml (для версии 7)
    • /usr/local/etc/ImageMagick/policy.xml
  2. Добавьте или измените правило для запрета псевдопротоколов EPHEMERAL, URL, HTTPS, HTTP, FTP и MVG (последние часто используются для подобных атак). Вставьте следующий блок внутри узла <policymap>: xml <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="HTTP" /> <policy domain="coder" rights="none" pattern="FTP" /> <policy domain="coder" rights="none" pattern="MVG" />

  3. Перезапустите службы, использующие ImageMagick (например, веб-сервер), чтобы изменения вступили в силу: bash sudo systemctl restart apache2 # или nginx, php-fpm и т.д.

Как исправить

Установите исправленную версию ImageMagick из официальных репозиториев вашего дистрибутива.

Для Ubuntu/Debian:

sudo apt update
sudo apt install --only-upgrade imagemagick libmagickcore-6.q16-3 libmagickwand-6.q16-3

Минимальные безопасные версии: 8:6.9.6.8+dfsg-1 (для Debian/Ubuntu 16.04+) или версии, содержащие патчи от мая 2016 года и новее.

Для CentOS/RHEL 7/8:

sudo yum update imagemagick

Или для dnf:

sudo dnf update imagemagick

Для Windows: Обновите пакет до версии ImageMagick 7.0.1-1 или 6.9.4-0, выпущенных после 3 мая 2016 года. Скачайте установщик с официального сайта: https://imagemagick.org/script/download.php.

Проверка версии после обновления:

convert --version

Убедитесь, что версия соответствует указанным выше или новее.