
CVE-2026-42945 - NGINX Rift Toolkit
CVE-2026-42945(nginx の重大な RCE 脆弱性)をスキャン、パッチ適用、テストするための包括的ツールキット
このツールキットは、CVE-2026-42945(nginx の重大なリモートコード実行(RCE)脆弱性)をスキャン、パッチ適用、テストするための包括的ツールを提供します。この脆弱性は、メインライン版 1.26.3 未満および安定版 1.24.1 未満の nginx に影響します。
この脆弱性は、ASLR が無効化されている環境でヒープスプレー技法を用いて、不正な形式の HTTP/2 ヘッダー解析を悪用します。
サブネットまたは単一ホストをスキャンして、脆弱な nginx インストールを特定します。
機能:
脆弱な nginx インスタンスを最新のセキュアバージョンに自動的にパッチ適用します。
機能:
ヒープスプレー技法により CVE-2026-42945 の脆弱性をテストします。
機能:
paramiko (>= 3.0.0) - SSH client library
rich (>= 13.0.0) - Terminal formatting and progress bars
git clone https://github.com/gagaltotal/CVE-2026-42945-NGINX-Rift-Toolkit
cd CVE-2026-42945-NGINX-Rift-Toolkit
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

nginx_scanner.py)python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.10 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/30 --user admin --password "password"
python3 nginx_scanner.py --subnet 192.168.1.0/24 --port 2222 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --output report.html
--subnet SUBNET Target subnet in CIDR format (required)
--user USER SSH username (default: root)
--password PASSWORD SSH password
--key KEY_PATH Path to SSH private key
--port PORT SSH port (default: 22)
--timeout TIMEOUT Connection timeout in seconds (default: 5)
--output FILE Output report file (HTML/JSON)
--workers WORKERS Number of concurrent threads (default: 20)
nginx_patcher.py)
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
python3 nginx_patcher.py --subnet 192.168.1.0/24 --target-version 1.26.3 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 10.0.0.0/30 --port 2222 --user admin --password "password"
--subnet SUBNET Target subnet in CIDR format (required)
--user USER SSH username (default: root)
--password PASSWORD SSH password
--key KEY_PATH Path to SSH private key
--port PORT SSH port (default: 22)
--timeout TIMEOUT Connection timeout in seconds (default: 30)
--target-version VERSION Nginx version to patch to (default: latest)
--dry-run Show what would be patched without executing
--workers WORKERS Number of concurrent threads (default: 10)
exploit.py)
python3 exploit.py --target 192.168.1.100 --port 80
python3 exploit.py --target 192.168.1.100 --port 80 --command "cat /etc/passwd"
python3 exploit.py --target 192.168.1.100 --port 80 --spray 50
python3 exploit.py --target 192.168.1.100 --port 80 --verbose
--target HOST Target host IP or domain (required)
--port PORT Target port (default: 80)
--command CMD Command to execute
--spray NUM Number of heap spray attempts (default: 20)
--timeout TIMEOUT Connection timeout in seconds (default: 5)
--tries NUM Number of exploitation attempts (default: 10)
--verbose Enable verbose output
# Step 1: Scan network for vulnerable instances
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key --output scan_results.html
# Step 2: Review scan results in scan_results.html
# Step 3: Patch vulnerable instances
python3 nginx_patcher.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# Step 4: Verify patches applied by running scanner again
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# Step 1: Dry-run to see what would be patched
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
# Step 2: Apply patches
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
# Step 1: First verify the system is vulnerable
python3 exploit.py --target 10.0.0.50 --port 80 --verbose
# Step 2: If successful, immediate patching is recommended
python3 nginx_patcher.py --subnet 10.0.0.50 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --password "password"
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --key ~/.ssh/id_rsa --port 2222
chmod 600 ~/.ssh/id_rsa--dry-run を使用するスキャナは複数の形式で詳細なレポートを生成します:
| 形式 | 説明 |
|---|---|
| HTML レポート | ブラウザで閲覧可能。脆弱性サマリー、影響を受けるホスト、バージョン詳細を含む |
| JSON レポート | 完全な技術詳細を含む機械可読形式 |
| コンソール出力 | 色分けされた結果によるリアルタイム進捗表示 |
すべての操作は監査コンプライアンスのためにタイムスタンプ付きでログに記録されます。詳細な実行情報についてはコンソール出力を確認してください。
貢献は歓迎します! 貢献するには:
git checkout -b feature/improvement)git commit -am 'Add improvement')git push origin feature/improvement)このツールキットは、許可されたセキュリティテストおよび脆弱性評価のみを目的として提供されます。コンピュータシステムへの無許可アクセスは違法です。ユーザーは、このツールキットを使用する前に適切な許可を得ていることを確認する責任があります。
gagaltotal - GitHub
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
最終更新日: 2026-05-20
| プロパティ | 値 |
|---|
| 脆弱性 ID | CVE-2026-42945 |
| タイプ | リモートコード実行(RCE) |
| CVSS スコア | 9.8(Critical) |
| 影響を受けるバージョン | < 1.26.3(mainline)/ < 1.24.1(stable) |
| 修正済みバージョン | 1.26.3+ |
| 攻撃ベクトル | 不正な形式の HTTP/2 ヘッダー解析 |
| 前提条件 | ターゲットシステムで ASLR が無効化されていること |
| 考慮事項 | 詳細 |
|---|
| SSH キー管理 | SSH キーは安全に保管し、リポジトリにコミットしないこと |
| ネットワークアクセス | 本番環境では適切なネットワーク分割を確保すること |
| テスト環境 | 必ず非本番環境で最初にテストすること |
| ロギング | すべての操作は監査証跡のための詳細なログを生成する |
| ASLR ステータス | エクスプロイトツールはターゲットで ASLR が無効化されている必要がある |
| ドライランモード | 適用前に変更をプレビューするには --dry-run フラグを使用する |
| バックアップ | パッチ適用前に必ず nginx 設定をバックアップすること |