Se han detectado vulnerabilidades en los gestores de paquetes GNU Guix, Nix y Lix (Nix, Guix, Lix), que permiten ejecutar código con los privilegios de usuario bajo los cuales se ejecutan las tareas de construcción (por ejemplo, nixbld* en Nix/Lix), lo que puede ser utilizado para escribir datos en el entorno de construcción y hacer cambios en el proceso de construcción. Los problemas están presentes en los procesos en segundo plano guix-daemon y nix-daemon, que se utilizan para organizar el acceso de usuarios no privilegiados a las operaciones de construcción.
Las vulnerabilidades se deben a que al realizar algunas operaciones para acceder a los directorios temporales de construcción, se utilizaron rutas de archivos completas en lugar de descriptores dirfd, lo que permitía alterar el directorio de construcción ubicado en la jerarquía /tmp (por ejemplo, " /tmp/guix-build-PACKAGE-X.Y.drv-0 "). El uso incorrecto de dirfd en la función de eliminación recursiva llevó a una condición de carrera, que permitió a un atacante sustituir un enlace simbólico en el momento entre la creación y el cambio de propietario del directorio de construcción. En un ataque exitoso, guix-daemon/nix-daemon, en lugar de cambiar el usuario para el directorio de construcción, cambiaba el propietario del archivo al que apuntaba el enlace simbólico.
Las vulnerabilidades se han corregido en las actualizaciones de Lix 2.93, Nix 2.29 y Guix 1.4.0-38.0e79d5b. Para explotar las vulnerabilidades, el atacante debe tener la capacidad de ejecutar trabajos de construcción arbitrarios. Para un ataque utilizando la vulnerabilidad CVE-2025-46415, es suficiente con tener la capacidad de crear archivos en el directorio /tmp en la máquina de construcción, y para la vulnerabilidad CVE-2025-46416 se necesita la capacidad de ejecutar código en el contexto del espacio de nombres de identificadores de usuario (pid namespace) y red (network namespace).
Fuente: opennet.ru
