Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
NotEnough — Cet outil calcule le délicat histogramme de Huffman canonique pour CVE-2023-4863. | Kitploit
Outils/GitHubGitHub/caoweiquan322/notenough
Criminalistique MémoireAnalyse des VulnérabilitésExploitationRétro-ingénierieFuzzingExploitation de Binaires
GitHubcaoweiquan322/notenough

NotEnough

Cet outil calcule le délicat histogramme de Huffman canonique pour CVE-2023-4863.

Voir le dépôt
253il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Outil de piratage de table de Huffman

Cet outil calcule un histogramme Huffman canonique délicat, capable de déclencher une écriture hors limites (OOB) pour la bibliothèque libwebp vulnérable (i.e. libwebp <= 1.3.1). Cette vulnérabilité est connue sous le nom de CVE-2023-4863 ou CVE-2023-41064. Nous pouvons déborder la table de Huffman pré-allouée d'au plus 132 entrées.

La raison est que libwebp suppose que l'histogramme Huffman contenu dans chaque image webp est bien formaté. C'est-à-dire que l'arbre de décodage doit être un arbre complet. Avec cette hypothèse, le groupe libwebp a tiré parti d'un outil enough pour estimer la taille mémoire maximale nécessaire à la construction de la table de Huffman de décodage (une structure puissante pour décoder rapidement les codes Huffman canoniques). Cependant, les pirates peuvent construire un arbre incomplet pour dépasser cette limite mémoire et ainsi déborder la mémoire pré-allouée.

Cet outil de piratage a été créé en ajustant enough avec le support des arbres incomplets.

Compilez le code avec la commande ci-dessous :

root@kitploit:~
gcc -o NotEnough ./main.c

Pour une table de Huffman avec 40 symboles, une table racine de 8 bits et une profondeur maximale de 15, le nombre maximal d'entrées de table est 410. Cependant, en construisant un arbre incomplet, le nombre d'entrées pourrait être 542. Essayez la commande ci-dessous :

root@kitploit:~
./NotEnough 40 8 15

Un exemple de tels arbres est donné ci-dessous :

Bad tree

Notez que nous avons élagué les branches sans feuilles pour plus de concision.

Vous pouvez ensuite utiliser l'outil craft pour construire une image webp efficace afin de faire déborder l'outil dwebp (version <= 1.3.1). Modifiez l'histogramme des codes Huffman code_lengths_counts[4] en {0, 1, 0, 0, 0, 0, 0, 0, 0, 3, 5, 9, 17, 1, 1, 3} en conséquence, puis reconstruisez l'outil :

root@kitploit:~
vim craft.c    # Change huffman code histogram accordingly, i.e. about line 495.
gcc -o craft craft.c
./craft -o bad_542.webp

Veuillez consulter le blog de @benhawkes pour mieux comprendre CVE-2023-4863.

Télécharger l’outil