Programadores que usam Rust foram alertados para atualizar suas versões devido a uma vulnerabilidade crítica que poderia permitir injeções maliciosas de comandos em máquinas Windows.
Identificada como CVE-2024-24576, a falha afeta a biblioteca padrão do Rust, que não estava escapando corretamente argumentos ao invocar arquivos em lote no Windows via API de Comando. Pietro Albini do Rust Security Response Working Group explicou que um invasor poderia executar comandos de shell arbitrários ao controlar os argumentos passados para o processo iniciado.
A complexidade da análise de argumentos do Windows CMD.exe foi apontada como a principal causa, pois a lógica de divisão de argumentos no Prompt de Comando funciona de maneira diferente das APIs padrão do Rust.
A atualização para a versão 1.77.2 do Rust foi lançada para corrigir a vulnerabilidade. Rust é uma linguagem favorecida pelos desenvolvedores e elogiada por sua segurança e produtividade, mas a falha ressaltou a necessidade contínua de vigilância. A vulnerabilidade, apelidada de BatBadBut, afeta não apenas o Rust, mas também outras linguagens como Erlang, Go, Python e Ruby. Enquanto Node.js e PHP estão trabalhando em correções, Rust e Haskell já lançaram suas soluções.