ATA 749 Actualizaciones ROTAS en UBUNTU por las Coreutils en Rust🚨
El título de este episodio podría sonar a clickbait apocalíptico, pero te aseguro que cada palabra es real. Durante un periodo crítico, las actualizaciones automáticas de seguridad en Ubuntu estuvieron completamente rotas. ¿El culpable? Un ambicioso proyecto para modernizar Linux reemplazando utilidades básicas escritas en C por versiones en Rust. Este proceso de "oxidación" nos ha dejado dos fallos críticos que analizaremos a fondo.En este programa urgente, no solo destripamos lo que falló, sino que lo convertimos en un caso de éxito rotundo para el desarrollo de código abierto. Si eres usuario de Linux, especialmente de Ubuntu, tienes que escuchar esto para entender por qué este tropiezo es, en realidad, un gran salto adelante para la seguridad de tu sistema.Ubuntu, en su versión intermedia 25.10 (Questing Quokka), decidió introducir dos piezas de software fundamentales escritas en Rust para probar su estabilidad antes de una versión LTS:uutils coreutils: La reimplementación de los comandos básicos de GNU (como ls, cp, y el protagonista de esta historia, date).sudo-rs: La reimplementación del comando sudo, la puerta de entrada a los permisos de administrador (root).Ambas fallaron poco después del lanzamiento. Analizaremos dos problemas principales:El Problema: El comando date -r se utiliza para obtener la hora de última modificación de un archivo. La versión en Rust de las coreutils tenía un error lógico: en lugar de devolver la fecha del archivo, siempre devolvía la fecha y hora actual del sistema.La Consecuencia Desastrosa: Te explico cómo esta simple incorrección lógica rompió el mecanismo de actualizaciones automáticas desatendidas (unattended-upgrades). El sistema, al consultar la fecha de un archivo de referencia con el comando defectuoso, creía que la última actualización se había hecho "ahora mismo", y por lo tanto, no ejecutaba ninguna nueva búsqueda ni instalación de parches de seguridad. Un bug silencioso que te deja vulnerable. Esta misma lógica fallida puede afectar scripts de backup que comprueban la antigüedad de las copias de seguridad con date -r.Exposición de la Contraseña: Cuando un usuario comenzaba a introducir su clave de sudo y el tiempo de espera (timeout) expiraba, el código defectuoso de sudo-rs exponía en pantalla y potencialmente en el historial de la shell la parte de la contraseña que ya se había tecleado. ¡Un fallo de seguridad grave que comprometía la confidencialidad de tu clave de administrador!Fallo de Autenticación Avanzada: También se produjo un fallo más técnico relacionado con la gestión de las credenciales de root bajo ciertas configuraciones (targetpw o rootpw), permitiendo un posible bypass de autenticación a usuarios locales que reutilizaran "pases rápidos" temporales defectuosos.La parte más constructiva de esta historia es la velocidad de respuesta. Aquí es donde se demuestra el valor real de probar estos cambios en versiones intermedias:Respuesta Inmediata.Divulgación Coordinada (CVD).El Valor de la LTS.No podemos olvidar el objetivo principal. El uso de Rust en uutils coreutils y sudo-rs busca la seguridad de la memoria, eliminando las causas fundamentales de la mayoría de los fallos de seguridad críticos en el código C que tienen décadas de antigüedad.Más información y enlaces en las notas del episodio🌐 Aquí lo puedes encontrar todo 👉 https://atareao.es✈️ Telegram (el grupo) 👉 https://t.me/atareao_con_linux✈️ Telegram (el canal) 👉 https://t.me/canal_atareao🦣 Mastodon 👉 https://mastodon.social/@atareao🐦 Twitter 👉 https://twitter.com/atareao🐙 GitHub 👉 https://github.com/atareao