El investigador del GitHub Security Lab, Jaroslav Lobačevski, publicó el 22 de mayo una advertencia sobre el CVE-2026-48095 (GHSL-2026-140): un desbordamiento de escritura en el buffer del montón en el controlador de archivos NTFS de 7-Zip, que puede provocar la ejecución arbitraria de código. La causa raíz es un comportamiento indefinido en la función GetCuSize(), que calcula el tamaño del buffer para flujos comprimidos de NTFS mediante un desplazamiento binario de 32 bits. Cuando una imagen NTFS manipulada por un atacante establece los valores ClusterSizeLog = 28 y CompressionUnit = 4, el exponente del desplazamiento alcanza los 32 bits, lo cual constituye un comportamiento indefinido en C++. Tanto en arquitecturas x86 como x64, el enmascaramiento de conteos de desplazamiento por parte del hardware hace que la expresión devuelva el valor 1, por lo que _inBuf se reserva con solo 1 byte de capacidad. La llamada posterior a ReadStream_FALSE escribe hasta 256 MB de datos controlados por el atacante en ese buffer de 1 byte. Los análisis con depurador confirman que el objeto de flujo (CInStream) se ubica a tan solo 304 bytes de distancia de _inBuf en el montón; la primera escritura de 64 KB sobrescribe su puntero a la tabla virtual (vtable), y las iteraciones siguientes redirigen la ejecución a través de dicha tabla corrupta, lo que representa un clásico secuestro de vtable que permite ejecutar código. Esta vulnerabilidad obtiene una puntuación CVSS 3.1 de 8.8 (Alta): no requiere autenticación ni privilegios especiales, y basta con una sola interacción por parte del usuario (abrir el archivo).
Un detalle particularmente relevante respecto al superficie de ataque: 7-Zip utiliza detección basada en firmas, por lo que cualquier imagen NTFS manipulada —que contenga la firma de 8 bytes "NTFS " a partir del tercer byte— será procesada por el controlador NTFS sin importar su extensión. Un archivo malicioso enviado como .7z, .zip, .rar o incluso sin extensión alguna activará la misma ruta de código vulnerable. Todas las versiones de 7-Zip hasta la 26.00 resultan afectadas tanto en compilaciones de 32 como de 64 bits; en sistemas de 64 bits con menos de unos 16 GB de memoria RAM libre, la reserva de 8 GB para _outBuf podría fallar, limitando el impacto a un simple bloqueo del programa. Lobačevski reportó el problema de forma privada el 24 de abril; Igor Pavlov lanzó la corrección correspondiente en la versión 26.01 tres días después, el 27 de abril. Quienes aún usen la versión 26.00 o anteriores deben actualizar de inmediato.