sábado, 19 de abril de 2003

Desbordamiento de búfer en la gestión de mensajes en el núcleo de Windows (NT 4.0, 2000 y XP)

Se ha descubierto un desbordamiento de memoria en el soporte de
depuración de Windows NT 4.0, 2000 y XP. Un atacante que logre
aprovecharse de esta vulnerabilidad puede conseguir el completo control
sobre el sistema vulnerable.

El núcleo del sistema operativo es el centro del sistema operativo. Este
centro ofrece a los programas de aplicación servicios para acceder a los
recursos existentes, como son la memoria, el procesador, los
dispositivos (pantalla, teclado, ratón, disco duro...). Así mismo,
incluye funciones para gestionar cualquier situación de error.

Se ha descubierto que los núcleos de los sistemas operativos Windows NT
4.0, 2000 y XP contienen un error en la forma en que se tratan
determinados mensajes que son enviados al depurador. Este error puede
provocar una vulnerabilidad de seguridad.

Concretando más, la función LpcRequestWaitReplyPort(), que es utilizada
por el núcleo del sistema operativo, confía en que un proceso que se
ejecuta en el espacio de memoria de usuario facilitará correctamente el
tamaño de un mensaje devuelto al núcleo.

Mediante la utilización de esta vulnerabilidad, un atacante puede
ejecutar código en el anillo 0 (el mismo anillo dónde se ejecuta el
núcleo del sistema operativo y en donde no se aplica la separación de
procesos ni la protección de memoria). Esto permite saltarse cualquier
mecanismo de seguridad existente y un acceso ilimitado a cualquier
recurso del sistema. El código que se ejecuta en este anillo dispone
incluso de más privilegios que el usuario administrador de la máquina.

Esta vulnerabilidad no es explotable de forma remota. Únicamente puede
ser aprovechada por un atacante que disponga de la capacidad de
conectarse al sistema, ya sea en una sesión interactiva (utilizando el
teclado y monitor del ordenador) o a través de una sesión de terminal.

Microsoft ha publicado una serie de parches para los diferentes sistemas
operativos afectados por este problema: Windows NT 4.0, Windows NT 4.0
Server (edición servidor de terminales), Windows 2000 y Windows XP
(ediciones de 32- y 64-bit).

Un aviso para los usuarios de Windows 2000. Según se desprende de un
mensaje en la lista NTBugTraq (ver la URL en "Más información"), este
parche incluye nuevas versiones de algunos archivos de sistema no
indicados en el articulo de la KB de Microsoft.

Concretamente, dentro del parche se incluye la misma versión de
NTDLL.DLL incluida en parche para el problema relacionado con WebDAV
(MS03-007). Cuando se instalaba esta versión de NTDLL.DLL, en
circunstancias muy concretas, algunos sistemas Windows 2000 no podían
arrancar. El archivo NTDLL.DLL incluido en este parche tiene seis bytes
diferentes respecto a la versión incluida en MS03-007. No obstante,
Microsoft no informa de si estos ligeros cambios son suficientes para
solucionar los problemas de compatibilidad descritos previamente. En
consecuencia, antes de aplicar este parche en sistemas críticos,
aconsejamos probarlo previamente en un entorno de pruebas.


Xavier Caballé
xavi@hispasec.com