Bad Epoll Linux Kernel UAF Flaw Lets Unprivileged Attackers Gain Root on Linux and Android
2026/07/06 gbhackers — Linux kernel で新たに発見された脆弱性 CVE-2026-46242 は、Bad Epoll と名付けられている。この脆弱性により、epoll サブシステムで競合状態が発生し、深刻な use-after-free (UAF) の欠陥へと至る。この欠陥を突く非特権ユーザーが、権限を root まで昇格できる可能性が生じ、Linux システム全体と Android デバイスが危険にさらされる。

この欠陥は、Google の kernelCTF プログラムの一環として、セキュリティ研究者 Jaeyoung Chung により発見/特定されたものである。中核となる kernel コンポーネントに潜む微妙な並行性バグは、実環境での悪用が可能であり、高い影響を持つとされる。
従来の、多くの権限昇格の脆弱性とは異なり、特に Bad Epoll が深刻だとされる理由は、system service/networking stack/browser で広く利用されている、基本的な kernel 機構に影響する点にあるが、パッチ適用以外に明確な緩和策は存在しない。
Bad Epoll Linux Kernel の UAF 欠陥
この脆弱性は、2023年4月に導入された race condition (commit 58c9b016e128) に起因しており、epoll の event notification サブシステム内に存在する。
この問題は、2 つの epoll インスタンスが同時にクローズされる際に発生する。その結果として、一方のスレッドが構造体を解放するが、もう一方が同じ構造体に対する処理を継続するため、use-after-free 状態に至る。
この競合ウィンドウは、わずか数個の CPU 命令にすぎないと推定されるほど極めて狭いとされる。ただし、研究者たちが実証したのは、この競合状態のウィンドウを拡大させ、kernel をクラッシュさせることなく繰り返し発生させる、きわめて信頼性の高い悪用の手法である。
この手法は、制御された環境において約 99% の成功率を達成しており、この脆弱性の悪用を、典型的な競合状態と比べて実用的なものにしている。
技術的な視点で見ると、ペアにした構成で配置された複数の epoll オブジェクトを悪用するエクスプロイトが、競合を発生させ、それを制御する。
制御可能な UAF 書き込みを達成した攻撃者は、そのプリミティブを、kernel の file object を標的とする、より強力な cross-cache 攻撃へと移行させる。
これにより、”/proc/self/fdinfo” などのインターフェイスを介した任意の kernel メモリ読み取りが可能となり、最終的には return-oriented programming (ROP) chain による制御フローの乗っ取りが可能になる。
その結果として、完全な kernel コード実行と root shell が発生するが、そのすべてが非特権コンテキストから達成される。注目すべき点として、研究者たちが指摘するのは、この欠陥が Chrome のレンダー・サンドボックスのような制限環境の内部からでも引き起こせることであり、悪用チェーンにおける有力な候補となっている。
Bad Epoll の最も懸念すべき側面の 1 つは、Android との関連性である。歴史的に見ると、Linux kernel の脆弱性のうち、Android デバイスの rooting に実際に利用可能であったものは、プラットフォーム固有の制約があるため、ごく一部に限られていた。
しかし、Bad Epoll は、こうした制約を回避可能な、まれなバグ群に加わることになる。初期テストでは、新しい Pixel モデルなどの、バージョン 6.6 以降の kernel を搭載するデバイスが脆弱である可能性が示されている。今後において、完全な Android エクスプロイトも提供される可能性があるという。この脆弱なコードは、6.4 系 kernel で導入されているため、古いデバイスは影響を受けない。
興味深いことに、この脆弱性は、Anthropic の AI システム Mythos 以前に発見されていた、別の epoll 関連の競合状態の脆弱性 CVE-2026-43074 と同時に存在していた。Mythos は、同じコード経路内の 1 件のバグの特定には成功したが、Bad Epoll の検出には失敗しており、実行時の兆候が最小限である競合状態の特定の難しさを浮き彫りにしている。
KASAN アラートのような、一貫した検知シグナルが存在しないことに加え、この競合ウィンドウが極めて狭いことが、この見落としにつながった可能性が高い。kernel のメンテナーたちでさえ、当初は完全な修正の実装に苦労しており、最終パッチが反映されたのは、最初の開示から 2 カ月後の 2026年4月24日 (commit a6dc643c6931) であった。
epoll は、無効化オプションのない kernel のコア機能であるため、公式パッチまたはベンダーのバックポートを適用する以外に、回避策や緩和策は存在しない。パッチ未適用の Linux kernel 6.4 以降を実行しているシステムは、影響を受ける可能性がある。
セキュリティ・チームに対して強く推奨されるのは、kernel アップグレードを優先し、ディストリビューターのアドバイザリを監視することだ。特に、非特権ユーザーのアクセスが可能な環境や、ブラウザ・サンドボックス・エスケープのシナリオが懸念される環境では、その重要性が高い。
訳者後書:Linux kernel の基本的なイベント通知機構である epoll サブシステムにおいて、複数の処理が同時に重なることでメモリ管理の不整合が生じる、競合状態のバグが発見されました。脆弱性 CVE-2026-46242 (通称 Bad Epoll) の背景には、並行処理を行う際の極めてわずかな命令の隙間に、データの安全な破棄と参照の順序が逆転してしまう設計上の盲点があります。この隙を突かれると、本来は権限を持たない一般のユーザーであっても、システムの中枢である root 権限を完全に奪取されてしまうという深刻な影響が生じます。この機能は無効化できない中核コンポーネントであるため、利用中の各ディストリビューションやベンダーから提供される最新のセキュリティパッチを速やかに適用することが唯一の対応策となります。


You must be logged in to post a comment.