Share
## https://sploitus.com/exploit?id=CA93E655-0588-53CC-92BC-C720CBC8E8A5
# 💥 CVE-2024-32002 – Git Submodule Path Injection PoC

## 🧠 Visão geral da vulnerabilidade

O CVE-2024-32002 explora uma falha crítica no Git relacionada à resolução de caminhos de submódulos. O Git permite que repositórios incluam submódulos definidos no arquivo `.gitmodules`, especificando caminho e URL. A vulnerabilidade surge quando o caminho é manipulado para apontar para dentro do diretório `.git`, que armazena metadados e configurações internas do repositório.

Ao combinar:

- **Manipulação do `.gitmodules`** para definir o caminho como `A/modules/x`
- **Criação de um symlink `a → .git`**

…o Git é enganado e resolve `A/modules/x` como `.git/modules/x`, ou seja, **dentro do diretório interno `.git`**. Isso permite que um atacante injete arquivos arbitrários — como hooks maliciosos — que podem ser executados em operações legítimas como `checkout`, `merge` ou `clone`.

Essa vulnerabilidade representa um vetor de execução remota de código, especialmente perigoso em ambientes CI/CD, automações ou repositórios compartilhados.

---

## ⚙️ O que o script `setup.sh` demonstra

Este script automatiza a criação de um ambiente vulnerável e reproduz o impacto da falha:

1. **Cria um submódulo malicioso (`hook-repo`)** contendo um hook `post-checkout` que escreve em `/tmp/teste.txt`
2. **Inicializa o repositório principal (`main-repo`)** e adiciona o submódulo
3. **Modifica o arquivo `.gitmodules`** para redirecionar o caminho do submódulo para `A/modules/x`
4. **Cria um symlink `a → .git`**, fazendo com que `A/modules/x` seja resolvido como `.git/modules/x`
5. **Injeta o `.gitmodules` malicioso no índice** usando `git update-index --index-info`
6. **Realiza um commit legítimo** para simular atividade normal
7. **Clona o repositório (`cloned-repo`) com `--recursive`**, inicializando o submódulo
8. **Copia o hook malicioso para `.git/hooks/`** e executa `git checkout HEAD` para disparar o exploit

Se bem-sucedido, o hook é executado e o arquivo `/tmp/teste.txt` é criado com o conteúdo:

```bash
joao was here
```

# 🐳 Ambiente Docker
Este repositório inclui um Dockerfile que:

  Instala o Git 2.45.0 (versão vulnerável)

  Cria um usuário normal (joao)

  Copia os arquivos da PoC

  Executa automaticamente o setup.sh

# 🔧 Como reproduzir
```bash
docker build -t git-cve-poc .
docker run --rm -it git-cve-poc
```

# 🔐 Impacto e mitigação
Essa vulnerabilidade afeta versões do Git anteriores à 2.45.1. A falha foi corrigida com validações mais rígidas na resolução de caminhos de submódulos. 
Repositórios que usam submódulos devem ser auditados, e ambientes automatizados devem ser atualizados imediatamente.

# ⚠️ Aviso legal
Este projeto é apenas para fins educacionais e de pesquisa. Não use em ambientes de produção. O objetivo é demonstrar o impacto técnico da vulnerabilidade e promover boas práticas de segurança.