Tecnología

Ubuntu 26.04 adopta Rust sudo por defecto para cerrar 46 años de vulnerabilidades C

Adrian Kessler

Ubuntu 26.04 LTS, lanzado en abril de 2026, hace que sudo-rs sea la implementación predeterminada de la herramienta que controla el acceso a nivel de sistema en Linux. Cuando un usuario o proceso necesita privilegios elevados — para instalar software, modificar archivos del sistema, ejecutar un servicio como root — sudo es el guardián. El original estaba escrito en C. sudo-rs es una reimplementación completa en Rust, y ahora es la versión que se incluye por defecto en la distribución de Linux más utilizada del mundo.

El sudo original se escribió en 1980. En ese tiempo, el código en C acumuló algo más junto con sus funcionalidades: una clase de vulnerabilidades de gestión de memoria que Rust elimina a nivel de compilador. La más significativa fue CVE-2021-3156, denominada Baron Samedit. La vulnerabilidad permaneció sin detectar durante aproximadamente diez años, permitiendo la escalada local de privilegios en todas las principales distribuciones de Linux. Un atacante local con una cuenta de shell no root podía convertirse en root. Canonical la parcheó en 24 horas tras su divulgación. La condición arquitectónica que lo permitió — la gestión manual de memoria de C — no se parcheó.

Lo que Rust cambia no es cómo se escribe el código, sino qué clase de errores pueden existir en él. Los desbordamientos de búfer, los errores de uso después de liberación y las desreferencias de puntero nulo son una categoría de vulnerabilidad que Rust elimina en tiempo de compilación — el compilador rechaza el código con estos patrones antes de que pueda ejecutarse. Para una pieza de software que maneja la escalada de privilegios, eso supone eliminar una restricción significativa del modelo de amenazas.

sudo-rs completó una auditoría de seguridad independiente completa en 2023. El proyecto alcanzó la paridad de rendimiento con la implementación en C. Canonical comenzó a incluirlo como opción en versiones anteriores de Ubuntu antes de convertirlo en el predeterminado en 26.04. El enfoque escalonado refleja la cautela apropiada para reemplazar una herramienta que, si falla, puede bloquear a los usuarios del acceso al sistema o escalar a los atacantes a root.

Ubuntu 26.04 también incluye uutils coreutils — reimplementaciones en Rust de herramientas fundamentales como ls, cat y mv. Pero cp, mv y rm permanecen en las implementaciones GNU en C para esta versión. La justificación de Canonical: las condiciones de carrera TOCTOU en esas implementaciones en Rust conllevan un riesgo de destrucción de datos que el equipo consideró demasiado alto para una versión LTS. El despliegue escalonado revela algo honesto sobre el enfoque de «reescribirlo en Rust»: las herramientas existen, pero la migración requiere un análisis de seguridad caso por caso, no un cambio generalizado.

El kernel de Linux comenzó a aceptar código de controladores en Rust en 2022. El equipo de Android ha utilizado Rust para nuevo código de sistemas desde 2021. Microsoft ha reescrito componentes de Windows sensibles a la memoria en Rust. Que Ubuntu haga de sudo-rs el predeterminado es un hito significativo porque no es un experimento en un nuevo controlador o un componente opcional — es la capa de autenticación para el acceso al sistema, incluida por defecto en cada nueva instalación de Ubuntu.

El patrón de CVE que produjo Baron Samedit termina para los usuarios de Ubuntu bajo esta configuración. Que otras distribuciones importantes — Debian, Red Hat, Fedora, Arch — sigan el movimiento de Ubuntu hacia sudo-rs por defecto es la pregunta que determina la magnitud del cambio. sudo-rs está disponible para todas ellas. Canonical consideró que los resultados de la auditoría eran suficientes. La próxima decisión corresponde a los demás mantenedores.

Etiquetas: , , , , ,

Debate

Hay 0 comentarios.