PT-2026-67303 · Pypi+1 · Gitpython+1
CVSS v4.0
9.3
Crítica
| Vetor | AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Nome do Software Vulnerável e Versões Afetadas
GitPython versões anteriores a 3.1.51
Descrição
O GitPython falha ao sanitizar adequadamente os argumentos passados para diversas APIs públicas, permitindo a injeção de comandos e a manipulação arbitrária de arquivos. O problema ocorre porque o software não aplica verificações de segurança em opções do Git para certos métodos, permitindo que atacantes injetem flags perigosas nas chamadas do binário
git subjacente.Detalhes técnicos incluem:
- Execução de Comando: O método
Repo.archive()encaminha**kwargsliteralmente, e o métodogit.ls remote()permite que o argumento de palavra-chaveupload packseja passado sem validação. Um atacante pode usar opções como--execou--upload-packpara executar comandos arbitrários no sistema host. - Sobrescrita Arbitrária de Arquivos: Os métodos
Repo.iter commits()eRepo.blame()não verificam a presença de traços iniciais no argumentorev. Ao passar um valor como--output=<caminho>, um atacante pode fazer com que o Git abra e trunque um arquivo arbitrário no sistema.
A exploração requer que uma aplicação passe argumentos controlados por um atacante para esses métodos específicos.
Recomendações
Atualize o GitPython para a versão 3.1.51 ou posterior.
Como mitigação temporária, restrinja ou desative o uso dos métodos
Repo.archive(), git.ls remote(), Repo.iter commits() e Repo.blame() caso eles processem entradas de usuários não confiáveis.Exploit
Correção
DoS
Argument Injection
Command Injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Gitpython
Red Os