
duchamp-root v52c8d05bcf
Xiaomi K70e (duchamp) рут одним кликом через CVE-2026-43499 (IonStack) + интеграция KernelSU
⚡ Гордый пользователь JetBrains Mono ⚡
В этом README используется исключительно JetBrains Mono. Comic Sans запрещён.
[!IMPORTANT] 🚨 Отказ от ответственности
Данный эксплойт предназначен только для образовательных целей.
- Разблокировка загрузчика может лишить вас гарантии.
- Root-доступ к устройству может вызвать bootloop, потерю данных или самовозгорание (вероятно, нет, но кто знает).
- Я не несу ответственности, если ваш K70e превратится в кирпич K70.
- Если ваша девушка уйдёт от вас из-за того, что вы слишком много времени потратили на рутинг, это ваша проблема.
- 7̷̋̚1̸̽̈́0̵̛̅ ̸͛̿ù̶̈́n̸̓̋l̸̔̒o̸̔̒c̷̊̒k̵̇̚ ̷̊̒ḟ̷͝e̶̋̕s̵̋̚t̸̽̈́ ̵̔̋l̶̔̒e̸̓̋t̸̔̒s̵̋̚ ̸̾̑ġ̷̝o̷̊̒ ̵̛̅ḟ̷͝u̸̓̋c̷̋̚k̸̛̅i̶̽̈́n̵̔̋g̷̊̒ ̴͛̿g̶̾̑ơ̵̅
📖 Китайская версия
🤔 Что это
Xiaomi K70e (duchamp) — инструмент для root в один клик, основанный на уязвимости ядра CVE-2026-43499 (IonStack), со встроенным демоном KernelSU.
Простыми словами: нажал — и телефон рутирован. Всё просто.
Версия «Фестиваль разблокировки 710»: Не 711, не 709, а 710. В этот день мы не разблокируем телефон, мы освобождаем его.
Философская версия: Когда ты смотришь в /proc/, /proc/ смотрит в тебя через pipe_physrw.
🎯 Текущая поддержка
| Устройство | Кодовое имя | Чип | Версия ядра | Статус |
|---|---|---|---|---|
| Redmi K70E | duchamp | MT6897 (Dimensity 8300) | 6.1.138-android14-11 | ✅ |
Другие модели см. в каталоге
src/targets/(эталонные конфигурации из исходного проекта, не проверенные на практике).
🧠 Цепочка уязвимостей
| Этап | Метод | Описание |
|---|---|---|
| 1. Утечка KASLR | Побочный канал pselect slide | Чтение _stext через псевдоним данных nfulnl_log_packet |
| 2. Перехват FOPS | Произвольная запись в стек через pselect | FUTEX_CMP_REQUEUE_PI + состояние гонки для перезаписи таблицы ops |
| 3. Примитив физического чтения/записи | Поддельные pipe_buf_ops | Подделка pipe_buf_ops → произвольный физический rw в ядре |
| 4. Повышение привилегий | Патч cred + seccomp + selinux | Изменение uid=0, полные cap, отключение seccomp, отключение selinux |
| 5. Постоянство | Встроенный KernelSU | Запись и запуск ksud (демона KernelSU) |
🎭 Пользовательские истории
Фестиваль 710
Пользователь: "Мой K70e можно разблокировать?"
Я: "Не нужно разблокировать, сразу root."
Пользователь: "??? "
Я: "w 710"
Пользователь: "Что?"
Я: "Новинка фестиваля разблокировки 710: не разблокировка BL, а освобождение телефона."
Первый запуск
Пользователь: "Почему мой телефон перезагрузился?"
preload.so: "Не паникуй, я повышаю привилегии."
Пользователь: "Что такое KernelSU?"
preload.so: "Это менеджер root, который теперь работает на твоём телефоне."
Интеграция KernelSU
Пользователь: "Как управлять root после этого?"
ksud: "Привет, я демон KernelSU."
Пользователь: "Что ты умеешь?"
ksud: "Могу давать приложениям права root."
Пользователь: "Ты же не встроенный?"
ksud: "Я встроен в preload.so."
Пользователь: "Круто."
Неудачный опыт
Пользователь: "Я поставил твою штуку, и теперь у меня кирпич!!!"
Я: "Какое устройство?"
Пользователь: "iPhone 14."
Я: "......Ты серьёзно?"
Пользователь: "Ты написал про фестиваль 710, вот я и попробовал."
Я: "710 — одно из кодовых имён Xiaomi 14, а не iPhone 14. Уходи."
⚙️ Принцип работы
- Загрузка preload.so — внедрение через
LD_PRELOADв любое приложение, запуск__attribute__((constructor)) - Утечка базы KASLR — побочный канал
pselectчерез псевдоним данных nfulnl_log_packet читает_stext - Перехват таблицы FOPS — состояние гонки futex PI + перезапись pipe ops
- Получение phys rw — подделка
pipe_buf_opsдля произвольного доступа к физической памяти ядра - Патч cred — поиск процесса root child, изменение uid=0, полные cap, sid=kernel
- Отключение защиты — патч seccomp, сброс TIF_SECCOMP, selinux enforce=0
- Запуск KernelSU — извлечение встроенного ksud в
/data/local/tmp/ksud, запуск демона KernelSU
📦 Использование
Предварительные требования
- Xiaomi K70e (duchamp) или другое поддерживаемое устройство
- Разблокированный загрузчик (или неразблокированный — временный root тоже работает)
- Включена отладка ADB
- Храбрость, не боящаяся кирпича
Быстрый старт
# Скачать preload.so из Release
wget https://github.com/Colorful-glassblock/duchamp-root/releases/download/v1.0/preload.so
# Передать на устройство
adb push preload.so /data/local/tmp/
# Внедрить в любое приложение через LD_PRELOAD
adb shell
su -c "LD_PRELOAD=/data/local/tmp/preload.so your_app"
Или используйте предоставленный скрипт внедрения (TODO).
Сборка из исходников
# Требуется NDK или Termux с aarch64-linux-android-clang
make PROJECT=duchamp
# Результат в build/duchamp/bin/preload.so