Foram encontradas vulnerabilidades nos gerenciadores de pacotes GNU Guix, Nix e Lix (Nix, Guix, Lix) que permitem a execução de código com os privilégios dos usuários sob os quais as tarefas de compilação são iniciadas (por exemplo, nixbld* em Nix/Lix), que podem ser usados para gravar dados personalizados 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, usados para fornecer acesso às operações de compilação a usuários sem privilégios.
As vulnerabilidades são causadas pelo fato de que, durante algumas operações, caminhos de arquivo completos foram usados em vez de descritores dirfd para acessar diretórios de compilação temporários, o que permitiu a substituição do diretório de compilação localizado na hierarquia /tmp (por exemplo, "/tmp/guix-build-PACKAGE-XYdrv-0"). O uso incorreto de dirfd na função de exclusão recursiva levou a uma condição de corrida, devido à qual um invasor poderia substituir um link simbólico no momento entre a criação e a alteração do proprietário do diretório de compilação. Em um ataque bem-sucedido, o guix-daemon/nix-daemon alterou o proprietário do arquivo endereçado pelo link simbólico em vez de alterar o usuário do diretório de compilação.
As vulnerabilidades foram corrigidas no Lix 2.93, Nix 2.29 e Guix 1.4.0-38.0e79d5b. Para explorar as vulnerabilidades, um invasor precisa ser capaz de executar tarefas de compilação arbitrárias. Um ataque usando a vulnerabilidade CVE-2025-46415 requer a capacidade de criar arquivos no diretório /tmp na máquina de compilação, enquanto para a vulnerabilidade CVE-2025-46416, é necessário ser capaz de executar código no contexto dos namespaces PID e de rede primários.
Fonte: opennet.ru
