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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/binarymasc/cve-2026-46242
特権昇格脆弱性分析エクスプロイトバイナリエクスプロイト
GitHubbinarymasc/cve-2026-46242

CVE-2026-46242

CVE-2026-46242 "Bad Epoll" 用の Aarch64 PoC チェッカー。Linux カーネルの epoll close-vs-close use-after-free 競合状態を引き起こし、ローカル権限昇格を検証します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-46242 — "Bad Epoll"

このリポジトリは、x86向けに既に存在するエクスプロイトをベースにした、aarch64カーネル向けのBad Epollバリデータです。

epoll のUse-After-Free競合状態を介したLinuxカーネルのローカル特権昇格

フィールド詳細
CVECVE-2026-46242
ニックネームBad Epoll
タイプ競合状態によるUse-After-Free (UAF)
CVSS7.8 (高)
影響ローカル特権昇格 → root
影響を受けるカーネル5.10 – 6.11 (LTS & COS)
サブシステムfs/eventpoll.c (ep_remove() / closeパス)

脆弱性の概要

Linuxカーネルのepollサブシステムには、監視対象および監視側のファイルディスクリプタに対する並行close()操作中に競合状態が存在します。2つのcloseパスが同時に実行されると:

  1. 一方のパスがep_remove()経由でeventpollオブジェクトを解放します。
  2. もう一方のパスの未処理のhlist_del_rcu()書き込みが、すでに解放されたメモリに対して行われます。

これによりUse-After-Freeが発生し、再利用されたeventpollのrefsリストが破壊され、生存しているepoll待機側に**ダングリングなepi->ffd.file**ポインタが残ります。これが完全なエクスプロイトチェーンの基盤となります。


エクスプロイトの流れ

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. KASLR Leak       (prefetch side-channel via libxdk)  │
├─────────────────────────────────────────────────────────┤
│ 2. Race Trigger      (close-vs-close UAF on eventpoll)  │
│    ├─ Adaptive timer: stat/exec phases calibrate ahead  │
│    ├─ False-sharing:  dup()+close() widens race window  │
│    └─ Oracle:         EPOLL_CTL_ADD depth-3 → ELOOP?    │
├─────────────────────────────────────────────────────────┤
│ 3. Reclaim           (freed eventpoll → ep_uaf_target)  │
│    └─ Dangling epi->ffd.file in ep_uaf_waiter           │
├─────────────────────────────────────────────────────────┤
│ 4. Cross-Cache       (filp slab → buddy → pipe_buffer)  │
│    ├─ Drain per-CPU partial list                        │
│    ├─ Free enclosing objects → slab page freed          │
│    └─ Reclaim as pipe pages (256 × 4 KiB)              │
├─────────────────────────────────────────────────────────┤
│ 5. Constrained AAR   (fdinfo ino:/sdev: as read oracle) │
│    ├─ Fake file spray tiles forged struct file in pipe  │
│    ├─ 8B read: ino: ← i_ino at controlled offset       │
│    ├─ 4B read: sdev: ← sigaltstack(sas_ss_sp) cursor   │
│    └─ Walk: init_task → find exploit task → resolve     │
│       files → fdt → fd[] → pipe_buffer → struct page   │
├─────────────────────────────────────────────────────────┤
│ 6. RIP Control       (f_op→poll hijack → JOP → ROP)    │
│    ├─ Forge f_op = virt, f_count = virt - 1             │
│    ├─ JOP pivot chain lands rsp on controlled page      │
│    └─ libxdk ROP: commit_creds(init_cred) + ns switch  │
├─────────────────────────────────────────────────────────┤
│ 7. Ret2Usr           execve("/bin/bash") as root        │
└─────────────────────────────────────────────────────────┘

ビルド

root@kitploit:~
# aarch64 (cross-compile or native)
aarch64-linux-gnu-gcc -O2 -Wall -pthread -march=armv8-a \
    race_check_aarch64.c -o race_check

使用方法

root@kitploit:~
./race_check [timeout_seconds]   # default: 300s (5 min)
./race_check 120                 # 2-minute timeout

終了コード

コード意味
0レースに勝利 — カーネルは脆弱
1タイムアウト — レースを検出できませんでした (偽陰性の可能性があり、カーネルがパッチ適用済みであることを証明するものではありません)

参考文献

  • 元のPoC (J-jaeyoung)
  • NVD — CVE-2026-46242

⚠️ 免責事項: このリポジトリは教育および正規のセキュリティ研究目的のみで提供されています。所有していない、または明示的なテスト許可を得ていないシステムに対するこのエクスプロイトの不正使用は違法です。

ツールをダウンロード