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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
bad-epoll — Linuxカーネルの権限昇格エクスプロイト(CVE-2026-46242)は、epollにおける競合状態のuse-after-freeを悪用し、デスクトップ、サーバー、Androidデバイスで99%の信頼性でルート権限を取得します。 | Kitploit
ツール/GitHubGitHub/j-jaeyoung/bad-epoll
Androidセキュリティ特権昇格脆弱性分析エクスプロイトCTF学習と教育バイナリエクスプロイト
GitHubj-jaeyoung/bad-epoll

bad-epoll

Linuxカーネルの権限昇格エクスプロイト(CVE-2026-46242)は、epollにおける競合状態のuse-after-freeを悪用し、デスクトップ、サーバー、Androidデバイスで99%の信頼性でルート権限を取得します。

リポジトリを見る
50644348日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Bad Epoll: Mythosが見逃したバグ

Bad Epollエクスプロイトの実行: 非特権プロセスがrootへ昇格する様子

Google kernelCTF上で非特権プロセスがrootへ昇格する様子。

Bad Epoll (CVE-2026-46242) は、Linuxカーネルのepollサブシステムにおける競合状態によるuse-after-freeです。このバグにより、非特権プロセスがLinuxデスクトップやサーバーだけでなく、Androidデバイス上でもrootになれます。

Bad EpollはJaeyoung Chungによって、Google kernelCTFへの0-day提出として報告・悪用されました。kernelCTFはLinuxカーネルエクスプロイトに$71,337以上を報奨します。Bad Epollの提出は**$92,337**の報奨を受け取りました。

[!NOTE] AnthropicのAI、Mythosは同じepollコード内に別の競合バグを発見しましたが、Bad Epollは見逃しました。


なぜ深刻なのか

  1. Androidをroot化できる稀なバグ。 ほとんどのLinux権限昇格バグはAndroidを全くroot化できません。例えばCopy Failとその亜種は、Androidが決してロードしないモジュールを必要とします。GoogleのkernelCTFで悪用された約130件の脆弱性のうち、Androidのroot化候補となるのは約10件に過ぎません。Bad Epollはそのうちの1つです。

    • Bad EpollはChromeのレンダラーサンドボックス内部からもトリガーでき、これは他のほぼすべてのカーネルバグをブロックします。したがって、レンダラーエクスプロイトはBad Epollと連鎖してカーネルコード実行を達成できる可能性があり、これはProject Zeroが「From Chrome renderer code exec to kernel with MSG_OOB」で実証したのと同じ影響です。
  2. キルスイッチが存在しない。 Copy Failとその亜種は、脆弱なモジュールをアンロードすることで無効化できますが、epollにはそのような選択肢がありません。epollはオペレーティングシステム、ネットワークサービス、ブラウザがすべて依存するカーネルの中核機能です。修正する唯一の方法はパッチを適用することです。

  3. 競合ウィンドウは極小、しかし攻撃の信頼性は99%。 このバグの競合ウィンドウはわずか約6命令分の幅しかなく、通常の試行ではほぼ決してヒットしません。エクスプロイトはそのウィンドウを広げ、カーネルを決してクラッシュさせないリトライループを実行します。その結果、以下に説明する攻撃の概要のとおり、99%の信頼性を持つエクスプロイトとなります。


Mythosが見逃したバグ

2023年の単一のコミットが、わずか約2,500行のepollコードに2つの別個の競合状態を導入しました。両方とも権限昇格につながりうる重大なバグであることが判明しました。

1つ目はAnthropicのMythosによって発見され、CVE-2026-43074として報告され、詳細はAnthropicの公開レポート、ANT-2026-CM0TCREPにあります。カーネルの競合バグは発見が難しいことで知られているため、この結果自体が印象的です。これはフロンティアAIモデルの競合バグ発見能力を示しました。後に独立した研究者が、その1-dayエクスプロイトをkernelCTFに提出しました。

もう1つの競合がBad Epollであり、Mythosはこれを見逃しました。Mythosがこの小さなepollコードパス内で最初のバグを発見したことを考えると、同じ領域をかなりの深さで調査した可能性が高いです。MythosがなぜBad Epollを見逃したのかを正確に知ることはできませんが、2つの要因が発見を難しくしたと考えられます。

  • 競合ウィンドウが極小。 わずか約6命令分の幅しかないため、脆弱なコードを見ても正確なスレッドのインターリーブを想像するのは困難です。

  • 実行時の証拠がほとんどなかった。 CVE-2026-43074が修正された後、Bad Epollのuse-after-freeは通常、カーネルの主要なメモリエラー検出器であるKASANをトリガーしません。そのシグナルがなければ、Mythosはそれを実際のバグとして報告する十分な確信を持てなかったのかもしれません。

Bad Epollの修正も困難でした。メンテナの最初のパッチは問題を完全には修正せず、正しいパッチが投入されたのはバグが最初に報告されてからわずか2か月後でした。通常セキュリティ問題を緊急に処理するカーネルとしては長い時間です。

全体として、Bad Epollは競合状態があらゆる段階でいかに難しいかを示しています。フロンティアモデルにとっても発見が難しく、正しく修正するのも難しく、そして次のセクションで示すように、信頼性高く悪用するのも難しいのです。またこれは、フロンティアAIモデルの存在下でもなお探求する価値のある脆弱性研究方向を示唆しています。すなわち、狭いタイミング条件と弱い証拠の背後にある真のセキュリティ影響を明らかにすることです。

[!NOTE] 独立した研究者であるQi Tangと Junxi Qianも、Anthropicと同じ2026年3月30日にCVE-2026-43074をLinuxカーネルチームに報告しました。 彼らの名前は上流の修正のクレジットから誤って省略されていました。 これらの独立した報告を指摘してくれたGuidong Hanに感謝します。 3人の研究者は後に、epollにおけるさらに別の競合状態によるuse-after-freeを発見しました。


攻撃の仕組み

好奇心旺盛な読者のために、攻撃の概要を以下に示します。

ep_waiterがep_targetを監視する: バグの背後にあるepoll構造体

リンクされた2つのepollオブジェクト。両方を同時にクローズすると競合が発生する。

epollのクローズパスのうち2つが同時に実行され衝突します。一方がオブジェクトを解放している間に、もう一方がまだそこに書き込んでおり、これがuse-after-free (UAF) です。

close対closeの競合ウィンドウと、エクスプロイトがタイマー割り込みを通じてそれを駆動する方法

競合ウィンドウと、エクスプロイトがそれを駆動する方法。

エクスプロイトは4つのepollオブジェクトを2組にグループ化して使用します。一方の組が競合をトリガーし、もう一方が被害者となります。そこから、エクスプロイトは8バイトのUAF書き込みをファイルオブジェクトへのUAFに変え、クロスキャッシュ攻撃を用いてファイルの内容を完全に制御します。

任意のカーネル読み取り: パイプに支えられたダングリングstruct fileが/proc/self/fdinfoを通じてカーネルアドレスを漏洩させる

バグを/proc/self/fdinfoを通じた任意のカーネルメモリ読み取りに変える。

その制御により、エクスプロイトは/proc/self/fdinfoを通じてカーネルメモリの任意読み取りを獲得します。最後に、制御フローをハイジャックし、ROPチェーンを実行してrootシェルを取得します。

詳細は完全なエクスプロイトのwriteupとコードで入手できます。


緩和策

epollは無効化できないため、Bad Epollに簡単な回避策はありません。唯一の対処法はパッチを適用することです。

  • 上流コミット a6dc643c6931、 または利用可能になり次第、お使いのディストリビューションのバックポートを適用してください。

影響を受けるバージョン

Bad Epollは 58c9b016e128 (2023-04-08) によって導入され、 a6dc643c6931 (2026-04-24) によって修正されました。

多くのLinuxディストリビューションは、v6.4以降をベースにしたカーネルを使用し、上記の修正コミットのバックポートをまだ適用していない場合、影響を受ける可能性があります。お使いのディストリビューションのカーネルセキュリティアップデートで、上記の修正コミットのバックポートを確認してください。古いv6.1ベースのカーネルは、バグがv6.4で導入されたため影響を受けません。

現在のエクスプロイトは、以下のGoogle kernelCTFターゲット向けに書かれています。

  • lts-6.12.67 (LTS)、99%の信頼性
  • cos-121-18867.294.100 (COS)、98%の信頼性

Androidエクスプロイトはまだ進行中です。

  • Pixel 10 (カーネルv6.6+): 現在のPoCはUAFをトリガーし、完全なrootエクスプロイトは進行中です。Androidエクスプロイトとwriteupは完成次第公開します。
  • Pixel 8およびその他のv6.1ベースのデバイス: バグがv6.4で導入されたため、影響を受けません。

タイムライン

日付出来事
2023-04-08バグがepollに導入された (コミット58c9b016e128)。
2026-02-17バグを[email protected]に報告した。
2026-02-17メンテナがパッチのプロトタイプを提案したが、正しい修正ではなく、その後議論は停滞した。
2026-03-30CVE-2026-43074がAnthropicと独立研究者Qi TangおよびJunxi QianによってLinuxカーネルチームに報告された。
2026-04-02CVE-2026-43074の修正がメインラインに投入された。
2026-04-22残りの問題を再報告した。
2026-04-24このバグの修正がメインラインに投入された (コミットa6dc643c6931)。

FAQ

なぜ「Bad Epoll」と呼ばれるのか?

この名前は、Androidをroot化するカーネルバグの「Bad」シリーズに従っています。その初期のものにはBad Binder、 Bad IO_uring、Bad Spinがあります。Bad Epollはepoll版です。

技術的な詳細はどこで見つけられますか?

このページは短縮版です。完全な根本原因分析、エクスプロイトwriteup、エクスプロイトコードは以下のリンクで見つけられます。

  • 根本原因writeup
  • エクスプロイトwriteup
  • エクスプロイトコード

クレジット

Bad EpollはJaeyoung Chungによって報告・悪用されました。

ツールをダウンロード