
Simulazione educativa sicura di CVE-2025-27520 con un servizio vulnerabile Flask e scanner PoC Python per dimostrare vulnerabilità di deserializzazione e di controllo degli accessi non sicuro.
⚠️ Importante: Questa è una simulazione educativa sicura della vulnerabilità CVE-2025-27520.
Il progetto include un servizio simulato (Flask) e uno scanner PoC sicuro (Python).
La simulazione crea un file di prova indata/quando riceve un marcatore di test, invece di eseguire comandi arbitrari.
CVE-2025-27520-final/
├── 📄 README_ru.md # Questo file di documentazione
├── 🐳 Dockerfile # Immagine del banco di prova (Flask)
├── 🐳 docker-compose.yml # Configurazione per avviare il container
├── 📊 result.json # Esempio di output dello scanner
├── ⚙️ setup.cfg # Configurazione flake8
├── 📁 app/ # Codice sorgente del servizio
│ ├── 🐍 app.py # Servizio simulato in Flask
│ └── 📦 requirements.txt # Dipendenze del servizio
├── 📁 src/ # Codice sorgente dello scanner
│ ├── 🐍 scanner.py # PoC / scanner (Python)
│ └── 📦 requirements.txt # Dipendenze dello scanner
├── 📁 data/ # Cartella montata per i file di prova
---
## 🎯 Breve descrizione della vulnerabilità
**CVE-2025-27520 (simulazione)** — dimostrazione di deserializzazione vulnerabile / broken access control
**In un prodotto reale ciò potrebbe portare a:**
- Escalation dei privilegi
- Esecuzione remota di codice
- Divulgazione di dati sensibili
**In questa versione educativa noi:**
- Confermiamo in sicurezza la vulnerabilità tramite la creazione di un file di prova
- Forniamo un banco di prova leggero per test locali
- Rispettiamo i principi di divulgazione responsabile
---
## 🛠 Requisiti di sistema
- **Sistema Operativo:** Linux
- **Docker:** Docker
- **Python:** 3.11 o superiore
---
## 🚀 Avvio rapido
### 1. Avvio del servizio
```bash
docker-compose up -d
curl http://127.0.0.1:5000/health
Risposta attesa: {"status":"ok"} o 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
# Nella directory principale del progetto
docker-compose build --no-cache
docker-compose up -d
docker ps
docker-compose ps
docker logs bento-sim --tail 100
Risultato atteso: container bento-sim in stato Up con forwarding delle porte 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
}
]
Endpoint principali:
POST /simulate_deserialize - accetta JSON con chiave payloadGET /evidence - verifica la presenza del file di provaGET /health - verifica del funzionamento del servizioLogica di funzionamento:
EVIDENCE_TRIGGER, crea un file di prova0.0.0.0:5000data/EVIDENCE_LANG_BENTO_SIM.txt - file di prova, creato in caso di simulazione riuscitaresult.json - risultati della scansione, generati dallo 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"}'
Risposta attesa: {"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
# oppure
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 in 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
# Per ZIP
unzip -t CVE-2025-27520-final.zip
---