
Simulação educacional segura do CVE-2025-27520 com um serviço vulnerável em Flask e scanner PoC em Python para demonstrar vulnerabilidades de desserialização e controle de acesso quebrado.
⚠️ Importante: Esta é uma simulação segura educacional da vulnerabilidade CVE-2025-27520.
O projeto inclui um serviço simulado (Flask) e um scanner PoC seguro (Python).
A simulação cria um arquivo de evidência emdata/ao receber um marcador de teste, em vez de executar comandos arbitrários.
CVE-2025-27520-final/
├── 📄 README_ru.md # Este arquivo de documentação
├── 🐳 Dockerfile # Imagem do ambiente (Flask)
├── 🐳 docker-compose.yml # Configuração para executar o contêiner
├── 📊 result.json # Exemplo de resultado do scanner
├── ⚙️ setup.cfg # Configuração do flake8
├── 📁 app/ # Códigos-fonte do serviço
│ ├── 🐍 app.py # Serviço de simulação em Flask
│ └── 📦 requirements.txt # Dependências do serviço
├── 📁 src/ # Códigos-fonte do scanner
│ ├── 🐍 scanner.py # PoC / scanner (Python)
│ └── 📦 requirements.txt # Dependências do scanner
├── 📁 data/ # Pasta montada para evidências
---
## 🎯 Breve descrição da vulnerabilidade
**CVE-2025-27520 (simulação)** — demonstração de desserialização vulnerável / controle de acesso quebrado
**Em um produto real, isso poderia levar a:**
- Escalação de privilégios
- Execução remota de código
- Divulgação de dados confidenciais
**Nesta versão educacional, nós:**
- Confirmamos a vulnerabilidade com segurança através da criação de um arquivo de evidência
- Fornecemos um ambiente leve para testes locais
- Seguimos os princípios de divulgação responsável
---
## 🛠 Requisitos do sistema
- **SO:** Linux
- **Docker:** Docker
- **Python:** 3.11 ou superior
---
## 🚀 Início rápido
### 1. Iniciar o serviço
```bash
docker-compose up -d
curl http://127.0.0.1:5000/health
Resposta esperada: {"status":"ok"} ou HTTP 200
python3 -m venv venv
source venv/bin/activate
pip install -r src/requirements.txt
python3 src/scanner.py --url http://127.0.0.1:5000
cat result.json
ls -l data/
cat data/EVIDENCE_LANG_BENTO_SIM.txt
# Na raiz do projeto
docker-compose build --no-cache
docker-compose up -d
docker ps
docker-compose ps
docker logs bento-sim --tail 100
Resultado esperado: contêiner bento-sim no status Up com encaminhamento de portas 0.0.0.0:5000->5000/tcp
--urlsource venv/bin/activate
python3 src/scanner.py --url http://127.0.0.1:5000
[
{
"ip": "http://127.0.0.1:5000",
"vuln": true
}
]
Endpoints principais:
POST /simulate_deserialize - aceita JSON com chave payloadGET /evidence - verifica a existência do arquivo de evidênciaGET /health - verificação de integridade do serviçoLógica de funcionamento:
EVIDENCE_TRIGGER, cria o arquivo de evidência0.0.0.0:5000data/EVIDENCE_LANG_BENTO_SIM.txt - arquivo de evidência, criado na simulação bem-sucedidaresult.json - resultados da varredura, gerados pelo script PoCvuln: falsedocker ps
curl http://127.0.0.1:5000/health
curl -v -X POST http://127.0.0.1:5000/simulate_deserialize \
-H "Content-Type: application/json" \
-d '{"payload":"Hello EVIDENCE_TRIGGER"}'
Resposta esperada: {"result":"evidence created"}
docker logs bento-sim --tail 200
sudo ss -ltnp | grep 5000
sudo iptables -L -n -v
pip install black autopep8
black src/scanner.py
# ou
autopep8 --in-place --aggressive --aggressive src/scanner.py
7z a -v3g -m0=Copy "CVE-2025-27520-stand.7z" "file.ova"
tar -tf file.ova | head -n 20
File → Import no VMware Workstation / VirtualBoxCVE-2025-27520-final/
├── 📄 README_ru.md
├── 🐳 Dockerfile
├── 🐳 docker-compose.yml
├── 📁 app/
├── 📁 src/
├── 📊 result.json
├── 📁 data/
zip -r CVE-2025-27520-final.zip CVE-2025-27520-final
sha256sum CVE-2025-27520-final.zip > CVE-2025-27520-final.zip.sha256
# Para ZIP
unzip -t CVE-2025-27520-final.zip