Linux 5.10 finalmente abandona una herramienta de décadas de antigüedad que causó errores de seguridad

0
20151

Linus Torvalds ha iniciado otro ciclo de desarrollo para el kernel de Linux, anunciando el lanzamiento de 5.10-rc1, y esta vez con un giro histórico. La nueva versión del kernel marca efectivamente el final de una característica de una década que se ha vuelto redundante después de que se descubrió que causaba errores de seguridad.

Con el cierre de la ventana de fusión de dos semanas, que precede al lanzamiento de cada nueva iteración del kernel de Linux, Torvalds compartió sus reflexiones sobre la lista de correo del kernel de Linux , sosteniendo que “las cosas parecen haber ido bastante bien”.

La ventana de fusión es una parte clave de cualquier proceso de lanzamiento de un nuevo kernel, durante el cual hasta 1000 parches enviados por la comunidad de desarrolladores se fusionan cada día en el repositorio principal administrado por Torvalds. Un proceso de revisión asegura que cada parche implemente un cambio deseable.

Esta vez, Torvalds llamó la atención sobre la eliminación de una herramienta de direccionamiento, llamada set_fs (), que se remonta a la versión original de Linux. “Para mí, el cambio más interesante aquí es la eliminación de set_fs () de Christoph”, escribió. “No es un gran cambio, pero es interesante porque todo el modelo de set_fs () para especificar si una copia del espacio de usuario va realmente al espacio del usuario o si el espacio del kernel se remonta prácticamente a la versión original de Linux”.

Como explicó Torvalds, la función set_fs () podría usarse para anular los espacios de direcciones, anulando la división entre el espacio del usuario y el espacio del kernel. La herramienta se usó ampliamente al administrar los primeros procesadores x86 de Intel, para controlar el rango de direcciones virtuales a las que se podía acceder mediante código sin privilegios.

Sin embargo, en 2010, el diccionario Common Vulnerabilities and Exposures (CVE) detalló los problemas de seguridad planteados por set_fs (). Al eludir ciertas restricciones de acceso, se demostró que la función podía “sobrescribir ubicaciones arbitrarias de memoria del kernel” y “obtener privilegios”, en algunos casos, para permitir que el espacio del usuario sobrescribiera los datos del kernel.

Dadas las deficiencias de seguridad de la herramienta, algunas arquitecturas como x86, powerpc, s390 y RISC-V ya han eliminado las anulaciones del espacio de direcciones. Pero, como escribió Torvalds: “Todavía tenemos ‘set_fs ()’, y no todas las arquitecturas se han convertido al nuevo orden mundial”.

Además de esta remediación histórica largamente esperada, la versión 5.10-rc1, como la mayoría de las versiones del kernel, viene con innumerables cambios más. Torvalds contó casi 14,000 confirmaciones por cerca de 1,700 personas, con cambios que van desde la compatibilidad con los SOC de Nvidia para autos y robots autónomos hasta la compatibilidad con el controlador de Nintendo Switch.

Los informes han  contado alrededor de 704,000 líneas de código nuevo y 419,000 líneas eliminadas, lo que hace que 5.10-rc1 sea comparable en tamaño al kernel más grande de Linux: 5.8. “Esta parece ser una versión más grande de lo que esperaba, y aunque la ventana de fusión es más pequeña que la de 5.8, no es mucho más pequeña”, dijo Torvalds. “Y 5.8 fue nuestro mayor lanzamiento hasta la fecha”.

Según el programa típico de Linux, a 5.10-rc1 le seguirán varias semanas de parches para solucionar problemas, con varias versiones candidatas que se lanzarán antes de la versión estable del kernel prevista para diciembre.

Fuente: zdnet