Greg Kroah-Hartman, responsable del soporte de las ramas estable y «staging» del núcleo de Linux y mantenedor principal en 16 subsistemas del núcleo, presentó una conferencia en Rust Week 2026, donde explicó cómo el lenguaje Rust puede ayudar a prevenir vulnerabilidades en el núcleo que surgen de errores comunes de los desarrolladores en C relacionados con la gestión de memoria, bloqueos, manejo de errores y trabajo con datos no confiables. Se destaca como principal ventaja de Rust la capacidad de detectar tales errores en la etapa de compilación, y no durante la revisión del código por humanos. No obstante, Rust no se considera una panacea que elimine todos los problemas, y no se tiene intención de reescribir el núcleo en Rust: se prevé una implementación gradual de Rust a través de su uso para nuevos controladores y subsistemas.
Como ejemplo de errores en el núcleo que se podrían haber evitado con el uso de Rust, se mencionan un error en la subsistema de Bluetooth, que permaneció sin ser detectado durante 15 años, y un problema en el hipervisor Xen. En el primer caso, el desarrollador realizó una desreferenciación de un puntero sin verificar, y en el segundo se olvidó de liberar un bloqueo en el código de manejo de errores.
Según Greg, la mayoría de los errores en el núcleo son causados por tales descuidos que se acumulan con el tiempo y se manifiestan como vulnerabilidades. En Rust, muchos de estos problemas son prevenidos por el compilador; por ejemplo, las abstracciones de Rust para bloqueos en el núcleo permiten el acceso a punteros internos de estructuras solo después de que se ha adquirido el bloqueo correspondiente, el cual se libera automáticamente. Sin adquirir el bloqueo, no se puede acceder a punteros de estructuras en Rust.
Greg cree que tales capacidades de Rust habrían evitado el 60% de los errores detectados en el núcleo, y que las verificaciones realizadas por el compilador habrían liberado a los mantenedores del gasto de tiempo en discutir con los autores sobre la corrección en el manejo de errores y la justificación del establecimiento de bloqueos en los lugares adecuados. Además, la implementación del soporte para Rust ya ha tenido un impacto positivo en el código en C del núcleo gracias a la mejora del código en C y las interfaces, así como la adopción de algunas técnicas de desarrollo (por ejemplo, se implementaron bloqueos con ámbito limitado).
Gracias al sistema de tipos que garantiza el cumplimiento de las reglas establecidas y al uso de sistemas de integración continua que verifican el código durante la fase de compilación, al revisar cambios en Rust, los revisores pueden centrarse en la lógica del funcionamiento en lugar de rastrear manipulaciones de recursos. La aplicación de Rust también permite prestar más atención a los datos que provienen del hardware o de sistemas externos. Esto se logra gracias a la clara distinción entre los datos dignos y no dignos de confianza a nivel del sistema de tipos: el desarrollador solo necesita realizar un análisis al pasar de un estado no confiable a uno confiable.
En tiempos recientes, el equipo responsable de la seguridad en el núcleo publica aproximadamente 13 informes de vulnerabilidades al día, lo que, en comparación con la dinámica anterior de detección de vulnerabilidades, se percibe como una locura (por ejemplo, ayer se publicaron 277 informes de vulnerabilidades en el núcleo). Según Greg, el uso de Rust es una de las formas reales de reducir el número de errores en el núcleo, provocados por errores tradicionales en el manejo de errores y la gestión de recursos. El soporte de Rust en el núcleo ya ha superado el ámbito experimental y a finales del año pasado fue reconocido como una característica oficial del núcleo.

Fuente: opennet.ru
