Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-98432 — CVE-2026-98432(inet_opt/ireq_opt における Linux IPv4 TCP の use-after-free)向けの Rust 製検出器およびローカルラボ:静的 ELF 解析、kprobe 到達性チェック、レーストリガー。 | Kitploit
ツール/GitHubGitHub/alvaroguzmancode/cve-2026-98432
静的分析脆弱性分析エクスプロイトファジング論文と研究ラボと実践
GitHubalvaroguzmancode/cve-2026-98432

cve-2026-98432

CVE-2026-98432(inet_opt/ireq_opt における Linux IPv4 TCP の use-after-free)向けの Rust 製検出器およびローカルラボ:静的 ELF 解析、kprobe 到達性チェック、レーストリガー。

リポジトリを見る
26日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-98432 — IPv4 TCP use-after-free (inet_opt / ireq_opt)

プレーンな IPv4 TCP リスナーから到達可能な Linux カーネルの use-after-free に関する研究用 PoC とローカルラボ。これはバグ検出/トリガーであり、エクスプロイトではない。

ステータス

  • 解析対象のビルド(7.0.0-38-generic)では、このコードパスは脆弱である: inet_sock_destruct() と tcp_v4_reqsk_destructor() はオプションを kfree_rcu() ではなく kfree() で解放している。
  • kfree パスは実行時に到達可能である(kprobes)。
  • UAF 自体は困難でバースト的なレースである。古い実行の1回で2件の候補となる free -> use イベント(via=reqsk)を観測したが、再現性をもって再現することは できなかった。
  • RCE、KASLR リーク、書き込みプリミティブは実装されていない。 参照リポジトリ tcp2kaslr もバグトリガーの段階で止まっており、以降の段階は公開されていない。
  • 確実な確認には KASAN(または KFENCE)カーネルが必要である。テストホストでは CONFIG_KASAN が無効で、KFENCE のサンプリングも無効になっている。

正しいベクター(tcp2kaslr より)

MPTCP は不要である。実証済みのパスはプレーンな IPv4 TCP である:

  1. 攻撃者が IPv4 Record Route オプション付きの SYN を送信する。
  2. カーネルはリクエストソケットにオプションを保存する(ireq_opt)。
  3. 再送された SYN が SYNACK を構築し、それらのオプションを読み取る。
  4. ハンドシェイクが完了し、子ソケットが同じポインタを受け取る。
  5. アプリケーションが子ソケットを accept() し、SO_LINGER(0) を設定して クローズする。inet_sock_destruct() がオプションを kfree() で解放する。
  6. SYNACK パスは依然として解放済みメモリを読み取っている。
  7. 並行する読み取り/書き込みは2つの CPU 上で発生する必要がある。

以前のトリガーには2つの誤りがあった。被害側が子ソケットを accept/クローズしておらず (free_sock=0)、サーバーのクローズに頼らず RST を送信していた。現在のコードは 正しい要素を追加している:

  • listen --accept-close — accept + SO_LINGER(0) + close。
  • --sync — ACK と重複 SYN を並行して送信、RST なし、Record Route オプション付き。

上流の修正はまさに次のとおりである:

-    kfree(rcu_dereference_protected(inet->inet_opt, 1));
+    kfree_rcu(rcu_dereference_protected(inet->inet_opt, 1), rcu);

また、tcp_v4_reqsk_destructor() における同じ変更についても同様です。

目次

パス内容
rust-poc/ネイティブ Rust PoC: 静的 ELF 解析、kprobes、トリガーモード
lab/旧ローカルテスト用の Alpine + PHP ループバック被害者環境
scripts/ローカル再現ヘルパー、認可済み監査ヘルパー
docs/FINDINGS.mdテストした内容、確認された内容、確認されなかった内容
docs/EXPLOITATION-NOTES.mdスコープ: バグトリガーのみ、RCE なし
docs/evidence/サニタイズ済みのサンプル証拠

クイックスタート

cd rust-poc
cargo build --release

# static analysis (no root)
./target/release/cve-2026-98432 static

# runtime reachability (root, tracefs)
sudo ./target/release/cve-2026-98432 runtime

# correct local vector: accept+close server + --sync trigger
cd ..
PASSES=1 ./scripts/repro-sync.sh 8083

repro-sync.sh は 127.0.0.1:8083 上で --accept-close の被害者を起動し、sudo で同期トリガーを実行して、free_sock、use_build、および UAF の判定結果を出力します。クリーンな実行は安全性の証明にはなりません。発生率は試行あたりおよそ 1e-7 であり、イベントはクラスタ化して発生します。

artifacts/ が存在しない場合、static/runtime は /boot にフォールバックします。レガシーな scripts/cve-2026-98432.sh --static を使用してカーネルアーティファクトを生成できます。

ポジティブ(陽性)の見え方

KASAN を使用すると、カーネルは inet_csk_route_req / ip_options_build における slab-use-after-free を報告し、解放スタックは inet_sock_destruct / inet_release にあります。tcp2kaslr ハーネスは KASAN を使用して約 134k 回の試行でこれに到達します。通常のカーネルでは、同じレースは約 48M 回の試行で 2 回だけ観測されました。

責任ある使用

所有している、または明示的にテストを許可されているカーネルとホストのみをテストしてください。このトリガーはカーネルレースであり、ホストをクラッシュさせる可能性があります。スナップショットを取得した使い捨ての VM を使用してください。

参考文献

  • offline-ant/tcp2kaslr — バグトリガー、KASAN の証拠、分析: https://github.com/offline-ant/tcp2kaslr
  • アップストリームのパッチ: ipv4: free inet_opt and ireq_opt after an RCU grace period (Eric Dumazet)、net/ipv4/af_inet.c および net/ipv4/tcp_ipv4.c における kfree → kfree_rcu。

ライセンス

MIT。LICENSE を参照してください。

ツールをダウンロード