Rust · Rust · CVE-2024-24576
**Nome do software vulnerável e versões afetadas**
Versões do Rust anteriores à 1.77.2
**Descrição**
Uma falha crítica de segurança na biblioteca padrão do Rust poderia ser explorada para atingir usuários do Windows e realizar ataques de injeção de comando. A vulnerabilidade permite que invasores executem comandos de shell arbitrários, contornando a escapagem de argumentos ao invocar arquivos em lote no Windows usando a API `Command`. A gravidade dessa vulnerabilidade é crítica para aqueles que invocam arquivos em lote no Windows com argumentos não confiáveis. Nenhuma outra plataforma ou uso é afetado.
As APIs `Command::arg` e `Command::args` afirmam em sua documentação que os argumentos serão passados para o processo gerado tal como estão, independentemente do conteúdo dos argumentos, e não serão avaliados por um shell. No entanto, no Windows, a implementação é mais complexa, pois a API do Windows fornece apenas uma única string contendo todos os argumentos ao processo gerado. A biblioteca padrão implementa um escapamento personalizado para argumentos passados a arquivos em lote, mas foi relatado que essa lógica de escapamento não era suficientemente completa, permitindo que argumentos maliciosos resultassem na execução arbitrária do shell.
**Recomendações**
Para resolver o problema, atualize para o Rust 1.77.2 ou posterior. Se você estiver usando uma versão anterior à 1.77.2, considere desativar a execução de arquivos em lote ou restringir o uso da API `Command` até que um patch esteja disponível. Além disso, tenha cuidado ao passar entradas não confiáveis como argumentos para a API `Command`.