← back
CVE-2016-3715mediumunder attackCWE-552

CVE-2016-3715

85Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 5.5epss 75%
from disclosure to weapon0 days
Published on NVDMay 5
1st PoCMay 4
CISA KEV+2008d
exploitation probability
75%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
2 public exploit(s)
Action required by CISAfederal deadline: 2022-05-03

Apply updates per vendor instructions.

Summary

CVE-2016-3715 é parte do conjunto de falhas conhecido como 'ImageTragick', divulgado em maio de 2016. O coder EPHEMERAL do ImageMagick lê um arquivo referenciado no pseudo-protocolo 'ephemeral:' e o apaga do disco após o uso; se uma aplicação processa imagens de origem não confiável com ImageMagick, um atacante pode embutir esse pseudo-protocolo num arquivo disfarçado de imagem e forçar a exclusão de qualquer arquivo que o processo tenha permissão de remover. O CVSS 5.5 (AV:L) reflete que a ação de exclusão ocorre no filesystem local do host que processa a imagem, mas o vetor de entrega é tipicamente remoto (upload de imagem por usuário externo).

Technical detail

ImageMagick trata 'coders' e 'pseudo-protocolos' como formas alternativas de indicar a origem/destino de uma imagem dentro de linguagens de marcação que ele interpreta nativamente, como MVG (Magick Vector Graphics) e SVG. O coder EPHEMERAL implementa um protocolo que lê um arquivo do disco e, em seguida, deleta esse arquivo — comportamento pensado originalmente para arquivos temporários internos, mas exposto sem restrição a qualquer entrada controlada pelo usuário.

A falha (CWE-284, controle de acesso inadequado, segundo classificação da CISA; also caracterizável como CWE-73, controle externo de nome/caminho de arquivo) existe porque o parser MVG/SVG aceita a string 'ephemeral:/caminho/arquivo' como valor de atributo de imagem sem validar se o caminho está dentro de um diretório permitido ou se o chamador tem intenção de deletar algo. O atacante controla integralmente o caminho passado ao pseudo-protocolo.

Um agravante estrutural do ImageTragick como um todo: o ImageMagick identifica o formato do arquivo pelo conteúdo (assinatura interna), não pela extensão. Isso significa que um arquivo .mvg ou .svg malicioso renomeado para .jpg ou .png ainda é interpretado como MVG/SVG pelo 'identify' e pelo 'convert', contornando qualquer filtro de aplicação baseado em extensão ou content-type declarado no upload.

A descrição oficial fala em 'remote attackers via crafted image' porque o vetor de entrada é uma imagem enviada remotamente (upload), mas a operação de exclusão em si é local ao processo que roda o ImageMagick — daí o AV:L no vetor CVSS.

How it’s exploited

O pré-requisito central é que alguma aplicação (backend web, serviço de conversão de imagens, pipeline de processamento em lote) invoque o ImageMagick — via binário 'convert'/'identify' ou via biblioteca (MagickWand/MagickCore) — sobre um arquivo cujo conteúdo o atacante controla, sem restringir os coders habilitados em policy.xml. Não é necessária autenticação além da que a própria aplicação exigir para fazer upload/processar imagens; a interação do usuário (UI:R) é justamente o ato de a vítima/servidor processar o arquivo malicioso.

A exploração documentada (Nikolay Ermishkin, Mail.Ru Security Team, divulgada via oss-security em maio/2016 junto com as demais CVEs do ImageTragick) consiste em um arquivo MVG ou SVG contendo uma referência de imagem ao pseudo-protocolo 'ephemeral:' apontando para um caminho de arquivo arbitrário no sistema. Ao processar esse arquivo, o ImageMagick lê e depois remove o arquivo alvo. Como o formato é detectado pelo conteúdo, o arquivo pode ser disfarçado com extensão de imagem comum, contornando validações client-side ou de extensão.

O impacto prático é negação de serviço/sabotagem por deleção seletiva de arquivos: dependendo dos privilégios do processo que executa o ImageMagick, um atacante pode apagar arquivos de configuração, uploads de outros usuários, ou qualquer caminho acessível — sem executar código nem ler conteúdo (isso é escopo de outras CVEs do mesmo lote, como 3714, 3716 e 3717). A vulnerabilidade está no catálogo KEV da CISA desde novembro/2021, confirmando exploração ativa observada, embora a CISA não classifique uso em campanhas de ransomware.

Versions

Affected
ImageMagick anterior a 6.9.3-10 (ramo 6.x) e versões 7.x anteriores a 7.0.1-1.
Fixed in
6.9.3-10 (ramo 6.x) e 7.0.1-1 (ramo 7.x). Distribuições aplicaram correções via atualização de pacote combinada com policy.xml restritivo (ex.: RHSA-2016:0726 para RHEL 6/7); Gentoo (GLSA 201611-21) recomenda linha >= 6.9.6.2, que consolida esta e outras correções subsequentes do mesmo período.

How to protect

A correção oficial do fornecedor está em ImageMagick 6.9.3-10 (ramo 6.x) e 7.0.1-1 (ramo 7.x). Pesquisadores que reportaram a falha (Mail.Ru Security Team) observaram que o primeiro patch lançado pelo projeto para as falhas relacionadas do ImageTragick (6.9.3-9) estava incompleto, então atualizar exatamente para essas versões corrigidas — não apenas para a primeira versão pós-disclosure — é necessário.

O controle compensatório real quando a atualização não é imediata é editar /etc/ImageMagick*/policy.xml para desabilitar os coders/pseudo-protocolos de risco (EPHEMERAL, MSL, MVG, LABEL, URL, HTTP, HTTPS, FTP, TEXT), como o próprio Red Hat aplicou via update de policy.xml no RHSA-2016:0726. Isso neutraliza a classe inteira de vulnerabilidades do ImageTragick, não só esta CVE específica, com custo de perder a capacidade de processar esses formatos legitimamente se a aplicação depender deles.

O que não funciona: filtrar por extensão de arquivo ou por content-type declarado no upload. O ImageMagick determina o formato pelo conteúdo/assinatura interna do arquivo, então renomear ou disfarçar a extensão não impede a interpretação como MVG/SVG maliciosos. Validação de magic bytes reais do arquivo (verificando se o conteúdo de fato corresponde a um formato de imagem raster esperado, rejeitando MVG/SVG quando não solicitados) é mais eficaz que checagem de extensão, mas isolar/desabilitar os coders via policy.xml é o controle recomendado pelos próprios fornecedores de distribuição.

How to detect

Não há assinatura de rede confiável, já que a exploração ocorre no processamento local do arquivo pelo ImageMagick, não em tráfego de rede distinguível por si só. O sinal mais direto é auditar o conteúdo de arquivos enviados como imagem: presença das strings 'ephemeral:', 'msl:', 'label:@' ou marcação MVG ('push graphic-context', 'viewbox', 'image over') dentro de arquivos com extensão de imagem raster (.jpg, .png, .gif) indica tentativa de exploração do ImageTragick.

Complementarmente, monitorar via auditd/fanotify exclusões de arquivo realizadas pelo processo 'convert'/'identify' (ou pela biblioteca ImageMagick embutida em uma aplicação) fora do diretório temporário esperado é um indicador forte de exploração bem-sucedida ou tentada.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
The EPHEMERAL coder in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allows remote attackers to delete arbitrary files via a crafted image.
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.