
Tool for CVE-2018-16323
CVE-2018-16323 est une fuite de mémoire dans le traitement des images XBM. Après avoir converti une image XBM en un autre type d'image, il est possible d'extraire les octets de mémoire divulgués à partir des données de l'image.
Découvert par d4d.
Un outil assez simple pour générer une preuve de concept (PoC) de CVE-2018-16323. Le répertoire samples contient quelques PoC pré-générés faciles à utiliser.
Pour utiliser cet outil, vous devez installer imagemagick :
apt-get -y install imagemagick
Et le vérifier :
convert -v
N'importe quelle version convient.
Usage générateur PoC : ./XBadManners.sh gen LARGEURxHAUTEUR NOM.xbm [minimal]
Exemple gen : ./XBadManners.sh gen 512x512 poc.xbm
Exemple gen : ./XBadManners.sh gen 1024x1024 poc_minimal.xbm minimal
Usage récupération du résultat : ./XBadManners.sh recover APERCU_SAUVEGARDE.png|jpeg|gif|etc
Exemple recovery : ./XBadManners.sh recover avatar.png
Le mode minimal vous permet de générer le plus petit corps XBM possible pour le coller dans BurpSuite ou autre. Le mode minimal a été testé et fonctionne très bien. Vous pouvez définir n'importe quelle largeur et hauteur dans ce mode.
Notez que vous pouvez extraire beaucoup de mémoire en utilisant une seule image. La seule restriction est la limitation de la taille maximale de l'image produite par le backend.
Vous pouvez essayer de récupérer preview.png. Si vous obtenez des mots lisibles dans la sortie, cela signifie que tout fonctionne correctement.
./XBadManners.sh gen 512x512 poc.xbm./XBadManners.sh recover result.pngBon résultat si l'aperçu change significativement d'un téléchargement à l'autre.
Le mode de récupération est créé pour une vérification rapide et devrait fonctionner correctement pour tous les formats d'image supportés par ImageMagick, mais il n'a été testé que pour png, jpeg et gif. Vous pouvez ajuster la logique d'extraction de la mémoire à partir de l'image en modifiant le script (il est simple mais laid).

XBM est un format noir et blanc. Ainsi, tout résultat ressemblera à une sorte de zèbre (si vous avez une bonne imagination). Fondamentalement, plus de noir signifie plus de données extraites.
Toute compilation d'ImageMagick après ce commit et avant ce commit est vulnérable.