Foram publicados lançamentos corretivos do sistema distribuído de controle de versões Git 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 e 2.39.4, nos quais foram corrigidas cinco vulnerabilidades. A vulnerabilidade mais grave (CVE-2024-32002), classificada como crítica, permite a execução de código malicioso durante a clonagem de um repositório controlado pelo atacante com o comando “git clone”.
A vulnerabilidade se manifesta apenas em sistemas de arquivos que não diferenciam maiúsculas de minúsculas e suportam links simbólicos, como os utilizados por padrão no Windows e no macOS. A exploração ocorre através da criação de um submódulo de diretório e um link simbólico que diferem apenas na capitalização, permitindo a gravação de arquivos no diretório .git/, em vez do diretório de trabalho do submódulo. Com a capacidade de gravação em .git/, o atacante pode substituir os hooks através de .git/hooks e executar código arbitrário durante a operação de “git clone”.
Outras vulnerabilidades:
- CVE-2024-32004 — um atacante em um sistema multiusuário pode preparar um repositório local especialmente formatado e conseguir a execução de código ao cloná-lo. Em particular, o atacante pode criar um repositório local que se pareça com um clone parcial, onde falta um objeto específico. Clonar esse repositório resultará na execução de código com os direitos do usuário que está realizando a operação de clonagem.
- CVE-2024-32465 — clonar de arquivos zip que contêm um repositório git completo, incluindo hooks no diretório .git/, resultará na execução desses hooks.
- CVE-2024-32020 — a criação de clones locais de um repositório no mesmo disco em um sistema multiusuário permite que outros usuários modifiquem arquivos que usam links físicos.
- CVE-2024-32021 — clonar um repositório local com links simbólicos pode ser utilizado para criar links físicos para arquivos arbitrários no diretório objects/.
Além da correção de vulnerabilidades em novas versões, várias mudanças foram propostas para aumentar a proteção contra vulnerabilidades que levam à execução remota de código e manipulam links simbólicos durante a execução da clonagem. Por exemplo, o git agora emite um aviso na presença de links simbólicos no diretório .git/. Os caminhos para submódulos agora podem conter apenas diretórios reais. Ao cruzar links simbólicos e diretórios, os diretórios são processados. Ao executar 'git clone', foi adicionada proteção contra a execução de hooks durante a clonagem e as verificações do parâmetro core.hooksPath foram reforçadas.
Fonte: opennet.ru
