Cómo Escalar a Root en Linux Usando las Nuevas Vulnerabilidades de Sudo

Recientemente se revelaron dos vulnerabilidades críticas en Sudo, la herramienta de línea de comandos ampliamente usada en sistemas Unix/Linux que permite a los usuarios ejecutar comandos como superusuario. Estas fallas permiten a usuarios locales sin privilegios obtener acceso root, lo que representa una amenaza grave para la integridad de sistemas Linux ampliamente desplegados.

Resumen de las Vulnerabilidades

Las vulnerabilidades han sido registradas como:

  • CVE-2025-1013
  • CVE-2025-1014

Afectan las versiones de Sudo desde la 1.9.0 hasta la 1.9.15p1, explotando debilidades en el manejo de plugins de registro I/O y la validación de políticas de usuario. Ambas fallas fueron corregidas en la versión Sudo 1.9.15p2.

Descripción Técnica General

CVE-2025-1013 — Abuso del Plugin de Registro I/O (Escalada de Privilegios Local)

Tipo de Vulnerabilidad:

Manejo inadecuado de las variables de entorno del plugin de registro I/O de Sudo, específicamente SUDOERS_IO_PLUGIN.

Descripción Técnica:

Sudo puede configurarse para registrar la entrada/salida del usuario mediante un plugin de registro I/O, como /usr/libexec/sudo/sudo_logsrvd.

En versiones vulnerables (1.9.0 a 1.9.15p1), los usuarios con permisos limitados de sudo pueden explotar una condición de carrera o modificar variables de entorno para inyectar rutas o binarios arbitrarios como plugin de I/O.

Esto permite que Sudo:

  • Cargue una librería compartida maliciosa
  • O ejecute un binario personalizado con privilegios de root

Pasos de Explotación (Simplificados):

  1. El atacante tiene acceso a un usuario que puede ejecutar ciertos comandos con sudo (por ejemplo: sudo ls o sudo less).
  2. El sistema tiene habilitado un plugin de I/O.
  3. El atacante establece la variable de entorno SUDOERS_IO_PLUGIN apuntando a su librería maliciosa.
  4. Sudo utiliza este plugin sin validar su origen o permisos.
  5. El plugin se ejecuta con UID 0 (root).

Ejemplo:

export SUDOERS_IO_PLUGIN=/home/usuario/plugin_malicioso.so
sudo ls # O cualquier comando permitido

Esto hace que plugin_malicioso.so se cargue y ejecute con permisos de root.

Impacto:

  • Escalada de privilegios local completa
  • Sin necesidad de exploit a nivel de kernel
  • Puede usarse como técnica de post-explotación o movimiento lateral

CVE-2025-1014 — Confusión de Privilegios vía Plugin de Políticas

Tipo de Vulnerabilidad:

Gestión incorrecta del estado entre plugins de políticas, especialmente durante sesiones interactivas o flujos autenticados múltiples.

Descripción Técnica:

Sudo utiliza plugins de políticas (como sudoers) para definir qué comandos puede ejecutar un usuario. En versiones vulnerables, Sudo no mantiene correctamente el estado de autorización entre llamadas al plugin, permitiendo que un atacante engañe al sistema para obtener privilegios elevados en comandos no autorizados.

El atacante puede:

  • Ejecutar una operación permitida (por ejemplo sudoedit)
  • Manipular el flujo de ejecución (con señales, variables de entorno o condiciones de carrera)
  • Hacer que Sudo ejecute otro binario no autorizado con privilegios de root

Ejemplo de Explotación:

El usuario tiene permitido ejecutar:

sudoedit /etc/motd

Pero no puede ejecutar /bin/bash. A través de manipulación de archivos temporales o condiciones de carrera, puede lograr que sudoedit ejecute un binario arbitrario.

Ejemplo práctico:

EDITOR='bash -c "cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash"' sudoedit /etc/hosts
/tmp/rootbash # Ahora tiene privilegios de root

Nota: Esto puede requerir configuración específica en sudoers como env_keep.

Escenario Realista:

  • Usar sudoedit para editar un archivo controlado
  • Cambiar el archivo objetivo por un enlace simbólico a /etc/shadow
  • O modificar el contenido durante la sesión de edición

Resumen: Matriz de Explotación

CVEAcceso RequeridoInteracción del UsuarioEscalada de PrivilegiosPunto de EntradaRemota
CVE-2025-1013Usuario localSudo limitadoCompleta vía plugin maliciosoTerminal/Shell
CVE-2025-1014Usuario localsudoedit permitidoCompleta vía bypass de políticasEditor/Shell

Ambas vulnerabilidades:

  • Son explotables solo a nivel local
  • No requieren autenticación, si el usuario tiene permisos limitados en sudo
  • Otorgan acceso completo como root

Sistemas Afectados

Estas fallas afectan múltiples distribuciones de Linux ampliamente utilizadas, incluyendo:

  • Debian
  • Ubuntu
  • Red Hat Enterprise Linux (RHEL)
  • Fedora
  • Arch Linux

Toda organización que utilice infraestructura basada en Linux debe verificar su exposición de inmediato.

Mitigaciones y Recomendaciones

Acciones Inmediatas:

  • Actualizar a Sudo 1.9.15p2, que contiene los parches para ambos CVE.
  • Auditar el archivo sudoers:
    • Limitar comandos permitidos como ALL
    • Deshabilitar funcionalidades innecesarias como plugins o registro de I/O
  • Supervisar el uso anómalo de comandos sudo

Detección Proactiva:

  • Usar herramientas de EDR o SIEM para buscar abusos de sudo -e, cambios en plugins o rutas dinámicas.
  • Identificar la creación de archivos de log inusuales o llamadas a plugins no esperadas.

Reflexiones Clave para Equipos de Ciberseguridad

1. Plugins: Poder y Riesgo

La extensibilidad de Sudo mediante plugins conlleva riesgos significativos si no se configura adecuadamente. Es fundamental deshabilitar interfaces innecesarias y asegurar integridad en los puntos de carga dinámica.

2. Local ≠ Seguro

Muchos entornos subestiman el riesgo de los usuarios locales. Estas vulnerabilidades refuerzan la necesidad de aplicar principios de Zero Trust incluso en sistemas internos.

3. Contexto de Cadena de Suministro

Si contenedores o imágenes virtualizadas contienen versiones vulnerables de Sudo, estas fallas pueden utilizarse como pivote para moverse lateralmente o escapar de entornos multiusuario.