CVE-2026-100689 in GitPython
Sumário
de VulDB • 26/09/2026
O GitPython anterior à versão 3.1.62 não valida o campo `path` lido de um arquivo `.gitmodules` não confiável ao atualizar submódulos. Embora uma correção anterior (GHSA-hmq2-w58f-27jc) tenha adicionado Submodule._validated_name() para restringir o campo `name`, e a proteção de contenção própria do GitPython, Submodule._to_relative_path(), seja aplicada em add() e move(), Submodule.update() deriva o local absoluto de checkout a partir do valor bruto de `path` sem essa proteção. Uma entrada `.gitmodules` contendo componentes de traversal de diretório (por exemplo, path = ../../../tmp/escaped) pode, portanto, causar a criação de diretórios via os.makedirs() fora da árvore de trabalho do repositório, preenchidos pela URL do submódulo no caminho de clone, e removidos via shutil.rmtree() quando force_remove é usado. A exploração requer um fluxo de aplicação que atualiza submódulos em um commit não-HEAD (como uma API de commits históricos); o fluxo comum de clone seguido de atualização re-deriva o caminho a partir de uma consulta à árvore canônica e não é afetado. O problema foi corrigido no GitPython 3.1.62.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.