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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
badepoll-selinux-disabler — CVE-2026-43074 を利用して Android 上の SELinux を無効化する (Linux 6.6/6.12) | Kitploit
ツール/GitHubGitHub/perongh/badepoll-selinux-disabler
Androidセキュリティ特権昇格エクスプロイトフレームワークエクスプロイトレッドチーミングペイロード開発バイナリエクスプロイト
GitHubperongh/badepoll-selinux-disabler

badepoll-selinux-disabler

CVE-2026-43074 を利用して Android 上の SELinux を無効化する (Linux 6.6/6.12)

リポジトリを見る
62141ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

badepoll-selinux-disabler

CVE-2026-43074 eventpoll UAF エクスプロイトから、SELinux 無効化ステージを単体抽出したものです。eventpoll のループ深度チェック(ep_get_upwards_depth_proc)を競合させ、selinux_state.enforcing にゼロを書き込むことで、シングルバイトのカーネル書き込みによりデバイスを Permissive に切り替えます。これは MAC 無効化プリミティブのみであり、権限昇格は含みません。

[!WARNING] カーネルエクスプロイトの概念実証です。カーネルのクラッシュ、データ破損、デバイスの不整合を引き起こす可能性があります。所有しているデバイス、またはテストを許可されたデバイスでのみ実行してください。事前にバックアップを取ってください。

Origin

NebuSec の完全な PoC(source tree)からトリミングしたものです。UAF は eventpoll のループ深度チェック(ep_get_upwards_depth_proc)にあり、RCU 保護下で epi->ep を走査している間に、並行スレッドから ep_free() が struct eventpoll を解放できることに起因します。上流では、解放を RCU グレース期間まで遅延させることで修正されました(commit 07712db8; NVD, OSV)。

これは "Bad Epoll"(CVE-2026-46242)とは異なります。Bad Epoll は同じ eventpoll コード内の ep_remove() における別の use-after-free です。ここでの競合は、07712db8 で修正されたループ深度チェックのライフタイムバグに特化したものです。

Affected kernels

kernel.org CNA(OSV/NVD 経由)によると、影響を受ける安定版ストリームとその修正バージョン:

  • 6.4.0 – <6.6.136(6.6.136 で修正)
  • 6.7.0 – <6.12.83(6.12.83 で修正)
  • 6.13.0 – <6.18.24(6.18.24 で修正)
  • 6.19.0 – <6.19.14(6.19.14 で修正)

対象として固定したカーネル 6.6.118-android15-8 は、影響を受ける 6.6 系の範囲内です(修正は 6.6.136)。上流のバージョンを上げずに修正をバックポートしたベンダーカーネルは影響を受けません。uname -r だけに頼らず、実際にパッチが適用されているか確認してください。

Target

特定のビルドに固定されています。enforcing バイトへはハードコードされた KVA エイリアス経由で到達し、競合はそのカーネルの slab レイアウトに依存します:

  • Device: Pixel 10 Pro / blazer
  • Kernel: 6.6.118-android15-8-g53e6e091166e-ab15266607-4k
  • Fingerprint: google/blazer/blazer:17/CP2A.260705.006/15641320:user/release-keys
  • Alias: TARGET_SELINUX_ENFORCING_ALIAS = 0xffffff800236a2e0

別のビルドをターゲットにするには、src/target.h 内でエイリアス(selinux_state のイメージオフセット + マッピングベース + ロードアドレス)を再計算する必要があります。

Build

aarch64 clang ツールチェーンを含む Android NDK が必要です。デフォルトは NDK_ROOT=/opt/android-ndk、API=35 です:

root@kitploit:~
make            # → build/disabler

必要に応じて上書き:

root@kitploit:~
make API=35 NDK_ROOT=/path/to/android-ndk

Run

build/disabler をデバイスにプッシュし、shell ユーザー(uid 2000)として実行してください。開始時点で SELinux が Enforcing である必要があります。そうでない場合、バイナリは処理をスキップします。成功すると:

root@kitploit:~
SELINUX_AFTER Permissive
RESULT PASS selinux_zero attempt=N

getenforce で確認: Permissive になるはずです。

Scope

元のエクスプロイトは、このプリミティブに加えて、パイプバッファの flags リダイレクト(読み取り専用のページキャッシュページへの DirtyPipe 方式の書き込み)を使って /system/bin/dumpstate を書き換え、root デーモンを起動します。それらのステージ(pipe.c、patch.c、su.c、payloads.S、および元の main.c によるオーケストレーション)はここでは省かれ、late_refs.c はゼロバイトリダイレクトの経路のみに縮小されています。SELinux を無効化するだけでは root は取得できません。MAC による強制がなくなり、ペイロード本体が非制限(unconfined)で実行できるようになるだけです。

ツールをダウンロード