Resumo O 'insafe_git_clone_options` de GitPython omite `-- template`. `git clone -- template= ` cópias ` /hooks/` no novo repositório e executa- os (fogos `post- checkout` durante o clone), para que um chamador que pode influenciar as opções de clone possa alcançar a execução arbitrária de comandos na configuração padrão ` allow_ unsafe_options= False`. ## Causa Raiz `base.py: 145 - 152 ` define ` unsafe_git_clone_options = ["--upload-pack","-u","--config","- c"]` — `-- template` está ausente. O candidato de guarda `['-- template']` passa `check_unsafe_options` (verificado). git copia o diretório do gancho e executa `post- checkout` no momento da checkout. git's `protocol.allow`/ `GIT_ALLOW_ PROTOCOL` não porte `-- template`; a lista de negação incompleta é a única defesa. ## Execução do comando do OS Arbitraria de Impacto durante o clone (config predeterminado). Requer um diretório legível por atacante que contenha um gancho executável — uma segunda condição prévia genuína (realista através de sistemas de arquivos compartilhados, dirs de upload, `/ tmp`, ou caminhos de rede gravados por atacante), refletido como AC: H.

Prova do conceito ```python # atacante estágios /hooks/post-checkout (chmod +x) a partir de git importa Repo Repo.clone_from(src, dst, template=' ') # post-checkout gancho executa -> marcador criado (verificado) ``` ## Cadeia de ataque 1. Configuração: estágios do atacante ` /hooks/post-checkout` (chmod +x). Guarda: n/ a (sistema de arquivos). 2. Entrada: `Repo.clone_from(url, caminho, template=' ')`. Guarda: `check_unsafe_options(candidates=['-- template'], insegure=unsafe_git_clone_options)`. Prova de Bypass: `-- template` não nos passes needlist -> (candidato verificado `['-- template']`, sem erro). 3. Sink: git copia o gancho e executa `post-checkout` no checkout. Impacto: ACE, configuração padrão (marcador verificado criado). ## Evidência de Bypass verificada ao vivo na HEAD (tag 3.1.53 ): o candidato de guarda `['-- template']` passou sem erro; o gancho `post- checkout` foi executado durante ` clone_ From`, criando o marcador. Independentemente do bypass de troca de valores (`-- template` é uma opção longa legítima que sobrevive a qualquer correção de valor de uma única taxa). Não coberto por qualquer aconselhamento existente.

Versão afetada `<= 3.1.53 `. ## Sugestão de correção Adicionar `-- template` (e auditoria para outras opções de influência do gancho/exec) para ` unsafe_git_clone_options`. --- Reportado por **zx (Jace)** — GitHub: @manus-use. Registro de aconselhamento: GHSA- 6 p 8 h- 3 wgx- 97 GF. Não há nenhum identificador adicional listado.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 16: 42: 09.000 Z e lista a sua última modificação como 2026 - 07 - 24 T 16: 42: 09.000 Z. Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H.

Informações sobre software e versão afetadas: pacote PyPI GitPython — ECOSISTEM: introduzido 0, corrigido 3.1.54. Classificação e evidência: identificadores de fraqueza CWE- 184, CWE- 78. O registro contém 5 suporte de referências nestes tipos: WEB, PACKAGE.