Github · Git Lfs · CVE-2022-24826
**Nome do software vulnerável e versões afetadas**
Versões 2.12.1 a 3.1.2 do Git LFS
**Descrição**
No Windows, se o Git LFS operar em um repositório malicioso que contenha um arquivo `..exe` e um arquivo chamado `git.exe`, e o `git.exe` não for encontrado no `PATH`, o programa `..exe` será executado, permitindo que o invasor execute código arbitrário. Isso não afeta sistemas Unix. A vulnerabilidade ocorre porque, quando o Git LFS detecta que o programa que pretende executar não existe em nenhum diretório listado em `PATH`, ele passa uma string vazia como caminho do arquivo executável para o pacote Go `os/exec`, que contém um bug que faz com que, no Windows, ele anteponha o nome do diretório de trabalho atual (ou seja, `. `) à string vazia sem adicionar um separador de caminho e, como resultado, procura nesse diretório por um arquivo com o nome base `.` combinado com qualquer extensão de arquivo de `PATHEXT`, executando o primeiro que encontrar.
**Recomendações**
Para as versões 2.12.1 a 3.1.2 do Git LFS, atualize para a versão 3.1.3 para resolver o problema. Como solução alternativa temporária, considere garantir que todos os programas pretendidos sejam encontrados no `PATH` para impedir a execução de arquivos maliciosos. Restrinja o acesso ao pacote `os/exec` vulnerável no projeto Go até que um patch esteja disponível.