Ubunlog Darkcrizt  

Vulnerabilidad en Ubuntu (CVE-2026-3888): Root a través de Snapd

Vulnerabilidad

Hace pocos dias, investigadores de Qualys dieron a conocer la noticia sobre el descubrimiento de una vulnerabilidad de alta gravedad (CVE-2026-3888) en las instalaciones predeterminadas de Ubuntu Desktop. Este fallo de seguridad permite a un usuario local sin privilegios escalar su acceso hasta obtener el control total del sistema como superusuario (root). El problema reside en una interacción no intencionada y defectuosa entre dos componentes críticos del sistema operativo que operan con privilegios elevados: la utilidad snap-confine y el demonio de limpieza systemd-tmpfiles.

La vulnerabilidad afecta directamente a las configuraciones por defecto de Ubuntu a partir de la versión 24.04 LTS y posteriores, y ha sido parcheada de urgencia por Canonical en la versión 2.75 de Snapd. Aunque el ataque requiere paciencia por parte del ciberdelincuente debido a la sincronización de las tareas de mantenimiento del sistema, el resultado final es una vulneración completa del host. A continuación, analizamos la mecánica técnica de esta escalada de privilegios local (LPE).

El conflicto: Snap-confine vs Systemd-tmpfiles

Para entender el ataque, es necesario comprender el rol de los componentes involucrados en el ecosistema Snap de Canonical:

  • snap-confine: Es un binario setuid root crítico encargado de construir el entorno aislado (sandbox) antes de que se ejecute cualquier aplicación Snap. Configura los espacios de nombres, las políticas de AppArmor y los filtros seccomp para evitar que la aplicación escape de sus límites.
  • systemd-tmpfiles: Es el demonio responsable de gestionar el ciclo de vida de los directorios volátiles (como /tmp). Su trabajo es limpiar automáticamente los archivos y directorios que han superado un umbral de antigüedad predefinido.

Por defecto, systemd-tmpfiles está configurado para purgar regularmente el contenido antiguo de /tmp. Aquí nace la vulnerabilidad: el atacante puede aprovechar la ventana de tiempo que existe después de que systemd-tmpfiles elimina el directorio temporal /tmp/.snap (utilizado por Snapd), pero justo antes de que snap-confine intente recrearlo para lanzar una aplicación.

Mecánica del ataque: Espera táctica y ejecución

El ataque está clasificado con un CVSS v3.1 de 7.8 (Alta gravedad), pero exige una complejidad alta (AC:H) debido a que depende del calendario del demonio de limpieza. En Ubuntu 24.04, systemd-tmpfiles limpia el directorio cada 30 días, mientras que en versiones más recientes lo hace cada 10 días.

El proceso de explotación sigue estos pasos técnicos:

  • La espera y la inyección: El atacante monitorea el sistema hasta que systemd-tmpfiles borra el directorio /tmp/.snap. Inmediatamente después, el atacante recrea manualmente el directorio e inserta una copia modificada de las bibliotecas del sistema en la ruta /tmp/.snap/usr/lib/x86_64-linux-gnu.exchange.
  • Secuestro del entorno (Race Condition): El atacante fuerza a snap-confine a inicializar un nuevo entorno aislado. Durante el fugaz proceso de creación de la carga útil en el directorio temporal, el atacante renombra la carpeta .exchange a /tmp/.snap/usr/lib/x86_64-linux-gnu.
  • Ejecución y persistencia: Este renombramiento provoca que snap-confine realice un montaje de enlace (bind mount) de las bibliotecas maliciosas con privilegios de root absolutos. El atacante ahora controla las bibliotecas compartidas y el cargador dinámico (ld.so) dentro del entorno de Snap.

Para consumar el ataque y escapar del entorno aislado (AppArmor/seccomp), el atacante utiliza su control sobre el cargador dinámico para copiar el ejecutable «bash» al directorio compartido  y modificar sus permisos (suid root). Como este directorio es directamente accesible desde el sistema anfitrión, el atacante solo necesita abrir una terminal estándar y ejecutar /var/snap/<nombre_del_snap>/common/bash como un usuario normal para obtener inmediatamente una consola de superusuario (root) sobre toda la máquina.

Soluciones y Mitigación

Canonical ha actuado rápidamente tras el aviso de Qualys y se insta a todos los administradores a actualizar el paquete snapd de inmediato a las siguientes versiones parcheadas:

  • Ubuntu 24.04 LTS: Versión 2.73+ubuntu24.04.2 o superior.
  • Ubuntu 25.10: Versión 2.73+ubuntu25.10.1 o superior.
  • Ubuntu 26.04 (Beta): Versión 2.74.1+ubuntu26.04.1 o superior.
  • Sistemas Heredados (16.04 a 22.04 LTS): Aunque no son vulnerables en su configuración por defecto, se recomienda encarecidamente aplicar el parche, ya que los administradores que hayan modificado el comportamiento de la limpieza de archivos temporales podrían estar expuestos a la misma cadena de explotación.

Finalmente si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.