Se han descubierto varias vulnerabilidades en el núcleo Linux, que podían conducir a la denegación de servicio o a la ejecución de código arbitrario. El proyecto Common Vulnerabilities and Exposures identifica los siguientes problemas:
Una condición de fuga en los sistemas de archivos sysfs permitía que los usuarios locales leyesen la memoria del núcleo y que pudiesen provocar una denegación de servicio (por caída).
Alexander Nyberg descubrió que la llamada al sistema ptrace() no verificaba adecuadamente las direcciones en la arquitectura amd64, de lo que podía sacar provecho un atacante local para hacer caer el núcleo.
Se ha descubierto un problema en la gestión del desplazamiento del código del sistema de archivos para xattr en ext3, que podía permitir que los usuarios de sistemas de 64 bits que tuviesen acceso a sistemas de archivos ext3 con atributos extendidos para provocar la caída del núcleo.
Chris Wright descubrió que la función mmap() podía crear mapas de memoria ilegales de los que podía sacar provecho un usuario local para hacer caer el núcleo o, potencialmente, para ejecutar código arbitrario.
Una vulnerabilidad en la arquitectura IA-64 podía provocar que los atacantes locales sobreescribiesen memoria del núcleo y que hiciesen caer el núcleo.
Se ha descubierto una vulnerabilidad en la llamada al sistema ptrace() en la arquitectura amd64, que podía permitir que un atacante local provocase la caída del núcleo.
Un desbordamiento de buffer en la llamada al sistema ptrace para arquitecturas de 64 bits permitía que los usuarios locales escribiesen bytes en memoria arbitraria del núcleo.
Zou Nan Hai ha descubierto que un usuario local podía provocar que el núcleo se colgase en la arquitectura amd64 después de invocar syscall() con unos argumentos manipulados.
Se ha descubierto una vulnerabilidad en la gestión de faltas del segmento de pila, que podía permitir que un atacante local provocase una excepción en la pila que conduje a una caída del núcleo con unas circunstancias particulares.
Balazs Scheidler descubrió que un atacante local podía invocar setsockopt() con un mensaje de política de xfrm_user no válido, lo que podía provocar que el núcleo escribiese más allá de los límites de un vector, con la consiguiente caída.
Vladimir Volovich descubrió un error en las rutinas de zlib que también estaba presente en el núcleo Linux y que permitía que los atacantes remotos hiciesen caer el núcleo.
Se ha descubierto otra vulnerabilidad en las rutinas zlib, que también estaba presente en el núcleo Linux y que permitía que los atacantes remotos hiciesen caer el núcleo.
Peter Sandstrom advirtió que snmpwalk, desde una máquina remota, podía provocar una denegación de servicio (oops del núcleo desde una posicón con una referencia nula) mediante paquetes UDP que podían provocar la llamada a la función con algún argumento incorrecto.
Andreas Gruenbacher descubrió un error en los sistemas de archivos ext2 y ext3. Cuando las áreas de datos se iban a compartir entre dos inodos, no se comparaba la igualdad de toda la información, con lo que se podían asignar ACLs erróneas para los archivos.
Chad Walstrom descubrió que el módulo del núcleo ipt_recent en procesadores de 64 bits como AMD64 permitía que los atacantes remotos provocaran una denegación de servicio (por kernel panic) mediante ataques varios como SSH o de fuerza bruta.
El código mprotect para los procesadores Itanium IA-64 Montecito no mantenía adecuadamente la coherencia de la caché, como requería la arquitectura, que permitía que los usuarios locales provocasen una denegación de servicio y, posiblemente, corromper los datos modificando las protecciones PTE.
Una condición de fugra en la gestión de hilos podía permitir que los usuarios locales provocasen una denegación de servicio (por interbloqueo) cuando los hilos estuviesen compartiendo memoria y esperando que un hilo hubiese realizado un exec.
Cuando un hilo estaba trazando otro hilo que compartiese el mismo mapa de memoria, un usuario local podía provocar una denegación de servicio (por interbloqueo), provocando un volcado del núcleo cuando el hilo trazado estuviese en estado TASK_TRACED.
Se ha descubierto un error en la llamada al sistema ioremap() en la arquitectura amd64, que podía permitir que los usuarios locales provocasen una denegación de servicio o una debilidad de información al realizar una búsqueda de una página de memoria que no existiese.
Los módulos HFS y HFS+ (hfsplus) permitían que los atacantes locales provocasen una denegación de servicio (por oops) usando hfsplus para montar un sistema de archivos que no fuese hfsplus.
Una condición de fuga en el módulo ebtables netfilter en un sistema SMP funcionando con mucha carga podía permitir que los atacantes remotos provocasen una denegación de servicio (por caída).
Roland McGrath descubrió que exec() no limpiaba adecuadamente los temporizadores posix en entornos multihilo, lo que provocaba una debilidad del recurso y podía permitir que varios usuarios locales provocasen una denegación de servicio usando más temporizadores posix de los que indicase la cuota para un solo usuario.
El núcleo permitía que los atacantes remotos envenenasen la tabla de reenvío del puete usando marcos que ya los hubiese descartado el filtro, lo que provocaría que el puente reenviase paquetes espiados.
El ioctl para el protocolo de paquetes de radio ROSE no verificaba de forma adecuada los argumentos cuando se definía un router nuevo, lo que permitía que los atacantes produjesen errores al sobrepasar los límites.
Una condición de fuga en sistemas SMP permitía que los usuarios locales provocasen una denegación de servicio (por posición con referencia nula), provocando que expirase un temporizador de conexión mientras se limpiaba la tabla de conexiones antes de que se adquiriese el bloqueo adecuado.
Un error en el código NAT permitía que los atacantes remotos provocaran una denegación de servicio (por corrupción de memoria) provocando que hubiese dos paquetes al mismo tiempo a los que hubiese que aplicar el protocolo NAT, lo que producía la corrupción de memoria.
Un olvido a la hora de limpiar memoria en las rutinas de gestión de hilos antes de copiar los datos en el espacio del usuario permitía que un proceso de usuario obtuviese información sensible.
Esta actualización también contiene otras correcciones para incidencias que no tenían implicaciones de seguridad.
La matriz siguiente muestra para qué versión del núcleo y para qué arquitectura se han corregido los errores que se mencionaron anteriormente:
| Debian 3.1 (sarge) | |
|---|---|
| Fuente | 2.6.8-16sarge1 |
| Arquitectura Alpha | 2.6.8-16sarge1 |
| Arquitectura AMD64 | 2.6.8-16sarge1 |
| Arquitectura HP Precision | 2.6.8-6sarge1 |
| Arquitectura Intel IA-32 | 2.6.8-16sarge1 |
| Arquitectura Intel IA-64 | 2.6.8-14sarge1 |
| Arquitectura Motorola 680x0 | 2.6.8-4sarge1 |
| Arquitectura PowerPC | 2.6.8-12sarge1 |
| Arquitectura IBM S/390 | 2.6.8-5sarge1 |
| Arquitectura Sun Sparc | 2.6.8-15sarge1 |
Le recomendamos que actualice los paquetes del núcleo inmediatamente y que reinicie la máquina.
Las sumas MD5 de los ficheros que se listan están disponibles en el aviso original.