1 ポイント 投稿者 GN⁺ 4 시간 전 | 1件のコメント | WhatsAppで共有
  • Linux カーネルの epoll サブシステムにおける競合状態 UAF脆弱性で、非特権プロセスが Linux デスクトップ・サーバーだけでなく Android デバイスでも root 権限を取得できる可能性がある
  • この脆弱性は Jaeyoung Chung が Google kernelCTF に 0-day として提出し、報告・エクスプロイトしたもので、kernelCTF は Linux カーネルエクスプロイトに $71,337+ の報奨金を提供している
  • Anthropic の AI Mythos は同じ epoll コード内の別の競合状態バグである CVE-2026-43074 を発見したが、Bad Epoll は見逃した
  • epoll は OS、ネットワークサービス、ブラウザが依存するコアカーネル機能であるため無効化できず、単純な回避策はなくパッチ適用だけが解決策である
  • 脆弱性は 2023-04-08 のコミット 58c9b016e128 で導入され、2026-04-24 のコミット a6dc643c6931 で修正された。v6.4 以降ベースのカーネルのうち、修正バックポートがないディストリビューションは影響を受ける可能性がある

Bad Epoll の性質と深刻度

  • Bad Epoll は Linux カーネル epoll サブシステムの競合状態による use-after-free(UAF) 脆弱性で、識別子は CVE-2026-46242
  • 非特権プロセスが root 権限を取得でき、Linux デスクトップ・サーバーだけでなく Android デバイス にも影響しうる
  • Google kernelCTF に 0-day として提出され、Jaeyoung Chung が報告とエクスプロイトを行った
  • kernelCTF は Linux カーネルエクスプロイトに $71,337+ の報奨金を提供している

なぜ危険なのか

  • Android root の可能性がある、まれな Linux 権限昇格バグである
    • 多くの Linux 権限昇格脆弱性は Android がロードしないモジュールを必要とするため、Android root にはつながらない
    • Google kernelCTF でエクスプロイトされた約 130 件の脆弱性のうち、Android root の候補は約 10 件で、Bad Epoll はそのひとつ
  • Chrome の renderer sandbox 内からでもトリガーできる
    • このサンドボックスは、ほぼすべての他のカーネルバグを防ぐ
    • renderer エクスプロイトと Bad Epoll を連鎖させることで、Project Zero が MSG_OOB で示した事例のようなカーネルコード実行の影響に至りうる
  • epoll には kill-switch がない
    • Copy Fail 系は脆弱なモジュールをアンロードして無力化できる
    • epoll は OS、ネットワークサービス、ブラウザが依存するコア機能のため無効化できない
    • 解決策はパッチ適用のみ
  • 競合ウィンドウは約 6命令 と極めて小さい
    • 通常の試行ではほとんど当たらない
    • エクスプロイトは競合ウィンドウを広げ、カーネルをクラッシュさせない再試行ループを実行する
    • その結果、kernelCTF 対象で 99% 程度の信頼性を示す

Mythos が見逃したバグ

  • 2023 年の単一コミット 58c9b016e128 により、約 2,500 行規模の epoll コードに 2 つの別個の競合状態が導入された
  • Anthropic の Mythos はそのうち 1 つを見つけ、CVE-2026-43074 として報告した
    • この結果は、カーネルの競合状態バグ検出が難しいことを示す意味のある事例である
    • その後、独立研究者がこの脆弱性の 1-day エクスプロイトを kernelCTF に提出した
  • もう 1 つの競合状態が Bad Epoll であり、Mythos はこれを見逃した
    • Mythos は同じ小さな epoll コードパスで最初のバグを見つけていたため、同じ領域を意味のある形で調査していた可能性がある
    • Bad Epoll を見逃した正確な理由は不明
  • Bad Epoll の検出が難しかった可能性がある要因
    • 競合ウィンドウが約 6 命令しかなく、脆弱なコードだけを見て正確なスレッドインターリービングを想像するのが難しい
    • CVE-2026-43074 の修正後は、Bad Epoll の UAF は通常 KASAN をトリガーしない
    • KASAN シグナルがなければ、Mythos が実際のバグとして報告する十分な確信を持てなかった可能性がある
  • 修正も容易ではなかった
    • メンテナの最初のパッチは問題を完全には修正できなかった
    • 正しいパッチが mainline に入ったのは最初の報告から 2 か月 後だった

攻撃フロー

  • 2 つの epoll close パスが同時に実行されて競合する
    • 一方のパスがオブジェクトを解放している間に、もう一方のパスがそのオブジェクトへ書き込み続けることで UAF が発生する
  • エクスプロイトは 4 つの epoll オブジェクトを 2 組に構成する
    • 1 組は競合状態をトリガーする
    • もう 1 組は被害オブジェクトになる
  • その後、8 バイトの UAF write を file オブジェクト UAF に変換する
    • cross-cache 攻撃により file 内容全体を制御する
  • 制御権を得た後、/proc/self/fdinfo を通じて任意のカーネルメモリ読み取りを確保する
  • 最終段階で制御フローをハイジャックし、ROP チェーンを実行して root shell を得る
  • 詳細技術資料

緩和策と影響バージョン

  • epoll は無効化できないため、簡単な回避策はない
  • 解決策は upstream コミット a6dc643c6931 またはディストリビューションのバックポートを適用すること
  • 脆弱性の導入と修正の時点
    • 導入: [58c9b016e128], 2023-04-08
    • 修正: [a6dc643c6931], 2026-04-24
  • v6.4 以降ベースのカーネルを使い、修正バックポートをまだ適用していない Linux ディストリビューションは影響を受ける可能性がある
  • v6.1 ベースの古いカーネルは、この脆弱性が v6.4 で導入されたため影響を受けない

エクスプロイト対象と Android の状況

  • 現在のエクスプロイトは Google kernelCTF 対象向けに作成されている
    • lts-6.12.67 (LTS): 99% reliable
    • cos-121-18867.294.100 (COS): 98% reliable
  • Android 向けエクスプロイトはまだ進行中
    • Pixel 10, kernel v6.6+: 現在の PoC は UAF をトリガーしており、完全な root エクスプロイトを進めている段階
    • Android 向けエクスプロイトと writeup は完成後に公開予定
    • Pixel 8 および他の v6.1 ベースのデバイスは、この脆弱性が v6.4 で導入されたため影響を受けない

タイムライン

  • 2023-04-08: コミット 58c9b016e128 により epoll にバグが導入される
  • 2026-02-17: security@kernel.org にバグを報告
  • 2026-02-17: メンテナがパッチ試作版を提案したが、正しい修正ではなく議論が停止
  • 2026-04-02: Mythos が発見した CVE-2026-43074 の修正が mainline に入る
  • 2026-04-22: 残っていた問題を再報告
  • 2026-04-24: Bad Epoll 修正コミット a6dc643c6931 が mainline に入る

名前と参考資料

  • Bad Epoll という名前は、Android root 可能なカーネルバグの「Bad」シリーズに従っている
  • このページは短縮版で、完全な root-cause 分析、エクスプロイト文書、コードは別リンクで提供されている

1件のコメント

 
GN⁺ 4 시간 전
Lobste.rs のコメント
  • この脆弱性が Chrome サンドボックスから到達可能だというのは本当に大ごとだが、kCTF 経由で報告され、報奨金が $71k にとどまったという点は少し驚き

  • Bryan Cantrill がまた正しかったな

    • 認めるのはちょっと気恥ずかしいけど、正直自分も最初に同じことを思った
    • 気になる。彼が何を言い当てたという話なのか、文脈がわからない
    • できれば文脈を少し教えてほしい
  • 一見空に見えるリポジトリにだまされないこと。エクスプロイトは README の下のほう にリンクされている
    まだ試してはいないし、緩和策はない。作者たちは Android の root 化も可能だと主張しているので、Android エコシステムを考えると、自分のメーカーがパッチを出すのは1か月後くらいになりそう。しかも Chrome レンダラーサンドボックスからも動作する

    • 2023年に Android スマホを買ったが、最後のカーネル更新は2024年半ばだった。このバグがその時期のものなら、パッチを受け取れるほうがむしろ珍しい側かもしれない
  • これ Android でも動くの?

    • 2文目に書いてあるじゃん
  • これがどう発見されたのか情報はある? Mythos は見逃したということだけど、別の大規模言語モデルの助けで見つけたのか、それとも人間がレビューして見つけたのか気になる
    だとしたら、なぜこの部分を調べていたのかも気になる

  • 「多くの Linux ディストリビューションは v6.4 以降ベースのカーネルを使っていて、まだ修正をバックポートしていなければ影響を受ける可能性がある。上記の修正コミットがバックポートされているかどうかは、ディストリビューションのカーネルセキュリティ更新を確認すること。古い v6.1 ベースのカーネルは、バグが v6.4 で導入されたため影響を受けない。」
    残念。スマホの root 化にいい方法になることを期待していたけど、新しすぎて特に有用ではなさそう。自分のスマホは 5.15