Tecnología

Ubuntu 26.04 incluye sudo en Rust como predeterminado y pone fin a 46 años de errores de memoria C

Adrian Kessler

Ubuntu 26.04 LTS, lanzado en abril de 2026, convierte a sudo-rs en 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 envía 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 además de 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, conocida como Baron Samedit. La vulnerabilidad pasó desapercibida durante aproximadamente diez años, permitiendo la escalada de privilegios local en todas las principales distribuciones de Linux. Un atacante local con una cuenta de shell sin privilegios de root podía convertirse en root. Canonical lanzó un parche en 24 horas tras la divulgación. La condición arquitectónica que lo permitió — la gestión manual de memoria de C — no recibió 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, errores de use-after-free y desreferencias de punteros nulos 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 un software que maneja la escalada de privilegios, eso es una restricción significativa que eliminar del modelo de amenazas.

sudo-rs completó una auditoría de seguridad independiente completa en 2023. El proyecto alcanzó paridad de rendimiento con la implementación en C. Canonical comenzó a enviarlo como opción en versiones anteriores de Ubuntu antes de convertirlo en el predeterminado en 26.04. El enfoque gradual refleja la precaución adecuada para reemplazar una herramienta que, si falla, puede bloquear el acceso de los usuarios al sistema o escalar a 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. El razonamiento 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 un lanzamiento LTS. El despliegue gradual revela algo honesto sobre el enfoque de ‘simplemente 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 usado Rust para nuevo código de sistemas desde 2021. Microsoft ha reescrito componentes sensibles a la memoria de Windows en Rust. Que Ubuntu convierta a sudo-rs en 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, enviada por defecto en cada instalación nueva de Ubuntu.

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

Etiquetas: , , , , ,

Discussion

There are 0 comments.