Foram detectadas vulnerabilidades nos gerenciadores de pacotes GNU Guix, Nix e Lix, permitindo a execução de código com os direitos dos usuários sob os quais tarefas de compilação são executadas (por exemplo, nixbld* em Nix/Lix), o que pode ser usado para gravar dados próprios no ambiente de compilação e fazer alterações no processo de compilação. Os problemas estão presentes nos processos em segundo plano guix-daemon e nix-daemon, utilizados para organizar o acesso de usuários não privilegiados a operações de compilação.
As vulnerabilidades são causadas pelo fato de que, ao realizar algumas operações para acessar diretórios temporários de compilação, não foram utilizados os descritores dirfd, mas sim caminhos de arquivo completos, o que permitia substituir o diretório de compilação localizado na hierarquia /tmp (por exemplo, '/tmp/guix-build-PACKAGE-X.Y.drv-0'). O uso incorreto de dirfd na função de remoção recursiva levou a uma condição de corrida, permitindo que um atacante inserisse um link simbólico entre a criação e a alteração do proprietário do diretório de compilação. Com um ataque bem-sucedido, guix-daemon/nix-daemon, em vez de mudar o usuário para o diretório de compilação, mudava o proprietário do arquivo apontado pelo link simbólico.
As vulnerabilidades foram corrigidas nas atualizações Lix 2.93, Nix 2.29 e Guix 1.4.0-38.0e79d5b. Para explorar as vulnerabilidades, o atacante deve ter a capacidade de executar trabalhos de compilação arbitrários. Para um ataque utilizando a vulnerabilidade CVE-2025-46415, é suficiente ter a capacidade de criar arquivos no diretório /tmp na máquina de compilação, enquanto para a vulnerabilidade CVE-2025-46416, é necessário ter a capacidade de executar código no contexto do espaço de nomes de identificadores de usuários primário (pid namespace) e rede (network namespace).
Fonte: opennet.ru
