Elevación local de privilegios en el kernel bajo plataformas de 64 bits

Se ha publicado una nueva versión del kernel que subsana un error que puede llevar a una elevación local de privilegios en el kernel de Linux.

Un atacante local podría ejecutar código arbitrario en el contexto del kernel de Linux en la plataforma de 64 bits AMD o Intel. Existe exploit público.

El problema está basado en la llamada de sistema de simulación de 32 bits que proporcionan las plataformas de 64 bits. Los sistemas de 64 bits ofrecen compatibilidad hacia atrás para aplicaciones diseñadas para su predecesora de 32 bits. Esto se hace a través de una emulación del sistema anterior, implementando en este caso el kernel llamadas de sistema propias de 32 bits, entre otros muchos recursos para poder ejecutar programas diseñados para esta (todavía popular) arquitectura.

La emulación de llamada a sistema IA32 no valida adecuadamente un valor que puede almacenarse en el registro %RAX. Esto permite provocar un acceso fuera de los límites de la tabla de llamadas al sistema. Si se eligen los valores adecuadamente, se podría inyectar y saltar a ese código que se ejecutaría en el contexto del kernel con totales privilegios.

La vulnerabilidad se produce en las versiones anteriores a la 2.4.35.3 y anteriores a la 2.6.22.7 para las respectivas ramas. El problema se agrava al existir exploit disponible públicamente capaz de aprovechar la vulnerabilidad.

Wojciech Purczynski ha sido el descubridor de este problema. No es la primera vez que este investigador encuentra fallos de elevación de privilegios en el kernel. Notificó esta vulnerabilidad el pasado 18 de septiembre y se ha hecho público el día 24.

Por otro lado, para la rama 2.6.x bajo todas las arquitecturas, la versión 2.6.22.8 también corrige una vulnerabilidad en el driver de ALSA en el kernel por la que un atacante local podría tener acceso a información sensible.

La mayoría de las distribuciones están ya ofreciendo paquetes precompilados que solucionan estas vulnerabilidades, por lo que se recomienda ejecutar las herramientas de actualización correspondientes o descargar del sitio oficial la última versión desde www.kernel.org.