jueves, 3 de mayo de 2018

Ejecución remota de código en 7-Zip y antivirus no especificados

Se ha descubierto una vulnerabilidad en el software de compresión 7-Zip, así como en cierto software antivirus, que permite la ejecución de código tras abrir un archivo comprimido especialmente manipulado





7-Zip es una popular aplicación gratuita de código abierto usada para comprimir y descomprimir archivos. Está desarrollada por Igor Pavlov, y además de usar el formato de compresión 7z (también libre), soporta los formatos de archivos comprimidos más conocidos (como ZIP, ARJ, tar, RAR…).

David L., cuya página personal es landave.io, encontró esta vulnerabilidad cuando buscaba vulnerabilidades en softwares antivirus. De hecho, esta vulnerabilidad primero fue descubierta en un producto antivirus y después encontrada en 7-Zip. Esto se debe a que el software antivirus y 7-Zip comparten la misma librería para descomprimir archivos RAR, llamada UnRAR. La arquitectura software de esta librería al parecer está cogida con pinzas, y si no la usas exactamente como el código de ejemplo proporcionado, se quedan sin inicializar ciertas estructuras de datos. Esto se puede aprovechar para efectivamente ejecutar código arbitrario al descomprimir un archivo.

En la publicación original se encuentra la explicación de cómo funciona exactamente la explotación del programa. La explicación se puede seguir sin dificultades con unas nociones básicas de exploiting en Windows. La cuestión es que cada día es más difícil alcanzar un nivel básico en exploiting, ya que las distintas mitigaciones implementadas por el sistema operativo hacen que cualquier exploit básico tenga que saltarse una por una las mitigaciones relevantes.

Afortunadamente, ya ha sido publicado el parche para esta vulnerabilidad en 7-Zip. A partir de la versión 18.05 no sólo contiene contiene el parche, sino que implementa ASLR en todos los ejecutables principales del programa. ASLR es una mitigación implementada a nivel de sistema operativo sobre la gestión de la memoria que dificulta la explotación de vulnerabilidades como éstas. Por desgracia, todavía no se han publicado parches para el producto antivirus afectado. Por tanto, el investigador que ha publicado la vulnerabilidad prefiere no decir cuál es el producto afectado hasta entonces.


Carlos Ledesma
@Ravenons


Más información:

7-Zip: From Uninitialized Memory to Remote Code Execution
https://landave.io/2018/05/7-zip-from-uninitialized-memory-to-remote-code-execution/