martes, 18 de mayo de 2010

Vulnerabilidad a través de Aero en Windows 7 y 2008 R2 (versiones de 64 bits)

Microsoft ha advertido sobre una vulnerabilidad que en realidad se hizo pública hace meses, y que afecta a Windows 7 y 2008 R2 en sus versiones de 64 bits. El fallo se puede aprovechar solo si el componente Aero está activo. La vulnerabilidad se ha descubierto a través del popular visor gratuito de imágenes Irfanview.

El fallo se encuentra en el renderizado de imágenes con la API GDI, en concreto en el componente Canonical Display Driver (cdd.dll). CDD emula una interfaz de Windows XP para que las aplicaciones accedan al motor de gráficos GDI. El fallo podría ser aprovechado por un atacante para causar una denegación de servicio y potencialmente ejecutar código arbitrario a través de una imagen especialmente manipulada que sea visitada con el navegador o vista con el visor por defecto. Aunque los vectores de ataque siguen siendo discutidos.

La ejecución de código es, en principio, teórica. Se trata de un problema de acceso desde la memoria del usuario a la memoria del kernel, lo que garantiza la posibilidad para un atacante de, al menos, provocar una denegación de servicio a través de un BSOD (Blue Screen Of Death o "pantallazo azul"). A partir de ahí, conseguir controlar el flujo de los registros de sistema para ejecutar código en el espacio del kernel (el más privilegiado) puede resultar complejo, en gran medida, por los nuevos sistemas de seguridad ASLR (Address Space Layout Randomisation) que incluyen los Windows desde su versión Vista. Existen fórmulas para eludir esta medida de seguridad (demostradas en el último concurso Pwn2Own), pero su explotación se hace mucho más compleja.

Además, el fallo solo funciona en las versiones de 64 bits (e Itanium) y, como hemos mencionado, Aero debe estar activo. Ni siquiera viene instalado por defecto en 2008. En Windows 7, por el contrario, aparece instalado y activo.

Por último, según el CVE (CVE-2009-3678) que le ha otorgado Microsoft a la vulnerabilidad, se deduce que fue encontrada en 2009. El popular visor gratuito Irfanview es el que aportó la pista. Sin estar todavía oficialmente programado para funcionar en Windows, se observó que al visualizar muchas miniaturas, el programa provocaba un BSOD en Windows 7 de 64 bits. Se pensó que el fallo era exclusivamente de la aplicación y no del sistema operativo hasta que, varios meses después, parece que Microsoft reconoce el problema como propio.


Sergio de los Santos
ssantos@hispasec.com


Más información:

V4.25: bluescreen with Windows 7, cdd.dll / win32k.sys
http://en.irfanview-forum.de/vb/showthread.php?5647-V4-25-bluescreen-with-Windows-7-cdd-dll-win32k-sys

Vulnerability in Canonical Display Driver Could Allow Remote Code Execution
http://www.microsoft.com/technet/security/advisory/2028859.mspx

No hay comentarios:

Publicar un comentario en la entrada