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` (режим джейлбрейка). Поддерживает генерацию `target.h` из `(xbl_config.img / vendor_boot.img) + boot.img` или другим способом.

Справочные проекты:

- [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 бинарник userspace KernelSU
├── tools/
│   ├── generate_target.py       # Единая точка входа генерации target.h в этом репозитории
│   └── vendor/                  # Исходные вспомогательные скрипты генерации, синхронизированные из родительского каталога
└── src/
    ├── main.c                   # Основной поток эксплойта
    ├── preload.c                # LD_PRELOAD constructor + запись/запуск ksud
    ├── root.c                   # Патч cred/seccomp/SELinux/root
    ├── slide.c                  # Утечка KASLR slide через pselect
    ├── fops.c                   # Маршрут pselect/FOPS
    ├── pipe.c                   # Примитив физического R/W через pipe-buffer
    ├── ksud_blob.S              # .incbin build/embed/ksud
    ├── kernelsnitch/            # Вспомогательные модули KernelSnitch
    └── 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`, адаптированный под исходный код этого репозитория.

Скрипт не принудительно проверяет `CONFIG_DEBUG_INFO_BTF=y` в IKCONFIG. Если смещения полей структур или раскладка percpu `entry_task` не могут быть проверены, выводится предупреждение, и генерация продолжается.

Если в образе полностью отсутствует пригодный BTF, например, появляется:

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

Генератор переходит в режим **fallback без BTF**:

- Продолжает восстанавливать смещения символов функций/глобальных объектов из kallsyms текущего `boot.img`;
- Макросы полей структур/раскладки, которые невозможно восстановить из BTF, наследуются из шаблонного target, шаблон по умолчанию — `rodin`;
- В верхней части сгенерированного header записывается предупреждение с указанием `without BTF` и используемого шаблона;
- Такой header гарантирует максимально возможную компилируемость, но надёжность работы требует проверки на реальном устройстве.

Можно указать шаблон 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. Генерация с помощью 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. Определение profile с уже root-устройства через ADB

Только генерация 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 header будет содержать:

- Константы direct map / физического 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` | unset / `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"` not found

Восстановите встроенный payload и пересоберите:

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

### Маршрут FOPS возвращает `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 shell:

```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).
Скачать инструмент