
CVE-2026-48095
7-Zip es un archivador de archivos con una alta relación de compresión. Las versiones 26.00 y anteriores contienen una vulnerabilidad de desbordamiento de búfer en el montón causada por una asignación insuficiente en el búfer de flujo comprimido NTFS (GetCuSize shift UB), lo que potencialmente permite a atacantes causar ejecución de código arbitrario o fallos de la aplicación. CInStream::GetCuSize() en el manejador NTFS calcula el tamaño del búfer de la unidad de compresión como (UInt32)1 << (BlockSizeLog + CompressionUnit), y una imagen manipulada con ClusterSizeLog >= 28 y CompressionUnit == 4 lleva el exponente a 32, lo cual es un comportamiento indefinido y colapsa en x86/x64, por lo que _inBuf se asigna como 1 byte. ReadStream_FALSE entonces escribe hasta 256 MB de datos controlados por el atacante en ese búfer de 1 byte en iteraciones de 64 KB, y debido a que el objeto CInStream se encuentra solo 304 bytes después de _inBuf, su puntero de vtable se sobrescribe y la siguiente llamada despachada logra un secuestro de vtable. En compilaciones de 32 bits, el desbordamiento se alcanza incondicionalmente; en 64 bits requiere que la asignación paralela de 8 GB de _outBuf tenga éxito, de lo contrario falla cerrando en denegación de servicio. El manejador NTFS está habilitado por defecto en 7z.dll estándar y, mediante un fallback basado en firma que coincide con "NTFS " en el desplazamiento 3, abrirá una imagen manipulada independientemente de la extensión del archivo durante la extracción o prueba. La versión 26.01 soluciona el problema.
Utilice este proyecto solo en entornos seguros y autorizados como:
Configuración de ejemplo:
git clone <repository-url>
cd <repository-name>
Ejemplo de uso:
# Install dependencies
# Run the project
python cve-2026-48095.py
# Specify output file name
python cve-2026-48095.py poc_ntfs_sparse.zip
Un repositorio para aprender, probar e investigar conceptos de ciberseguridad en entornos controlados.
Este repositorio es solo para investigación educativa y autorizada en seguridad.
Está diseñado para ayudar a los usuarios a aprender sobre:
Use este repositorio solo en entornos donde tenga permiso, como:
El uso no autorizado o ilegal está estrictamente prohibido.
El autor y los colaboradores no son responsables de ningún daño, mal uso, problemas legales o pérdidas causadas por este proyecto.
Al usar este repositorio, usted acepta que:
Este proyecto está destinado a:
Por favor, siga las prácticas de divulgación responsable y cumpla con todas las leyes aplicables.
Para divulgación responsable o colaboración, contacte al mantenedor del repositorio a través de GitHub.