支持本站 — 捐款将帮助我们持续运营

目标: 1000 元,已筹: 1000

100.0%

POC详情: 984e0824b25a810936bb6f190233baf32fcfdc77

来源
关联漏洞
标题:Microsoft Visual Studio 安全漏洞 (CVE-2024-32002)
Description:Microsoft Visual Studio是美国微软(Microsoft)公司的一款开发工具套件系列产品,也是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具。 Microsoft Visual Studio存在安全漏洞的相关信息,请随时关注CNNVD或厂商公告。
介绍
# 💥 CVE-2024-32002 – Git Submodule Path Injection PoC

## Motivação

Durante a resolução da máquina **Compiled** da plataforma Hack The Box, me deparei com um comportamento curioso envolvendo Git e submódulos. Ao investigar mais a fundo, encontrei [este excelente post](https://amalmurali.me/posts/git-rce/) do pesquisador Amal Murali, que detalha uma técnica de injeção de caminho via `.gitmodules`. A partir disso, decidi estudar o CVE-2024-32002 e criar uma PoC prática que demonstrasse o impacto real da vulnerabilidade.


## 🧠 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:

  1. **Instala o Git 2.45.0 (versão vulnerável)
  2. **Cria um usuário normal (joao)
  3. **Copia os arquivos da PoC
  4. **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.
文件快照

[4.0K] /data/pocs/984e0824b25a810936bb6f190233baf32fcfdc77 ├── [1.2K] Dockerfile ├── [3.4K] README.md └── [1.8K] setup.sh 1 directory, 3 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮件到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对 POC 代码进行快照,为了长期维护,请考虑为本地 POC 付费/捐赠,感谢您的支持。