
Tool for CVE-2018-16323
CVE-2018-16323 é um vazamento de memória no processamento de imagens XBM. Após a conversão de uma imagem XBM para outro tipo de imagem, é possível extrair bytes de memória vazados dos dados da imagem.
Descoberto por d4d.
Uma ferramenta bastante simples para gerar PoC da CVE-2018-16323. O diretório samples contém algumas PoCs pré-geradas fáceis de usar.
Para usar esta ferramenta, você deve instalar o ImageMagick:
apt-get -y install imagemagick
E verifique:
convert -v
Qualquer versão é adequada.
Usage poc generator: ./XBadManners.sh gen WIDTHxHEIGHT NAME.xbm [minimal]
Example gen: ./XBadManners.sh gen 512x512 poc.xbm
Example gen: ./XBadManners.sh gen 1024x1024 poc_minimal.xbm minimal
Usage result recovery: ./XBadManners.sh recover SAVED_PREVIEW.png|jpeg|gif|etc
Example recovery: ./XBadManners.sh recover avatar.png
O modo minimal permite gerar o menor corpo XBM possível para colar no BurpSuite ou onde você quiser. O modo mínimo foi testado e funciona perfeitamente. Você pode definir qualquer largura e altura neste modo.
Observe que você pode extrair muita memória usando uma única imagem. A única restrição é a limitação do tamanho máximo da imagem produzida pelo backend.
Você pode tentar recuperar preview.png. Se você obtiver palavras legíveis na saída, isso significa que tudo funciona perfeitamente.
./XBadManners.sh gen 512x512 poc.xbm./XBadManners.sh recover result.pngBom sinal se a pré-visualização mudar significativamente de um upload para outro.
O modo de recuperação foi criado para uma verificação rápida e deve funcionar bem para qualquer formato de imagem suportado pelo ImageMagick, mas foi testado apenas para png, jpeg e gif. Você pode ajustar a lógica de extração de memória da imagem modificando o script (é simples, mas feio)

XBM é um formato preto e branco. Portanto, qualquer resultado parecerá uma espécie de zebra (se você tiver boa imaginação). Basicamente, mais preto == mais dados extraídos.
Toda compilação do ImageMagick após esse commit e antes desse commit é vulnerável.