
CVE-2026-48095
7-Zip est un archiveur de fichiers offrant un taux de compression élevé. Les versions 26.00 et antérieures contiennent une vulnérabilité de débordement de tas (heap buffer overflow) causée par une sous-allocation dans le tampon du flux compressé NTFS (décalage UB de GetCuSize), permettant potentiellement à des attaquants d'exécuter du code arbitraire ou de provoquer des crashs de l'application.
CInStream::GetCuSize() dans le gestionnaire NTFS calcule la taille du tampon de l'unité de compression comme (UInt32)1 << (BlockSizeLog + CompressionUnit), et une image conçue avec ClusterSizeLog >= 28 et CompressionUnit == 4 porte l'exposant à 32, ce qui est un comportement indéfini et s'effondre sur x86/x64, de sorte que _inBuf est alloué avec 1 octet. ReadStream_FALSE écrit ensuite jusqu'à 256 Mo de données contrôlées par l'attaquant dans ce tampon de 1 octet par itérations de 64 Ko, et comme l'objet CInStream se trouve seulement 304 octets après _inBuf, son pointeur de table virtuelle (vtable) est écrasé, et l'appel suivant dispatché permet un détournement de table virtuelle. Sur les builds 32 bits, le débordement est atteint sans condition ; sur 64 bits, il nécessite que l'allocation parallèle de 8 Go de _outBuf réussisse, sinon l'échec ferme le service (denial of service).
Le gestionnaire NTFS est activé par défaut dans la version standard de et, via une correspondance de secours basée sur la signature "NTFS " à l'offset 3, ouvrira une image conçue quelle que soit l'extension du fichier lors de l'extraction ou du test. La version 26.01 corrige le problème.
7z.dllUtilisez ce projet uniquement dans des environnements sûrs et autorisés tels que :
Exemple de configuration :
git clone <repository-url>
cd <repository-name>
Exemple d'utilisation :
# Installer les dépendances
# Exécuter le projet
python cve-2026-48095.py
# Spécifier le nom du fichier de sortie
python cve-2026-48095.py poc_ntfs_sparse.zip
Un dépôt pour apprendre, tester et étudier les concepts de cybersécurité dans des environnements contrôlés.
Ce dépôt est destiné uniquement à des fins éducatives et de recherche en sécurité autorisée.
Il est conçu pour aider les utilisateurs à apprendre :
Utilisez ce dépôt uniquement dans des environnements où vous avez l'autorisation, tels que :
Toute utilisation non autorisée ou illégale est strictement interdite.
L'auteur et les contributeurs ne sont pas responsables des dommages, erreurs d'utilisation, problèmes juridiques ou pertes causés par ce projet.
En utilisant ce dépôt, vous acceptez que :
Ce projet est destiné à :
Veuillez suivre les pratiques de divulgation responsable et vous conformer à toutes les lois applicables.
Pour une divulgation responsable ou une collaboration, contactez le responsable du dépôt via GitHub.