
Эксплойт ядра Android для конкретного устройства, использующий CVE-2026-64560 в сборках OnePlus 13, обеспечивающий временный root через ADB shell с проверенными полезными нагрузками и инструментами портирования.
OP5D0DL1) CVE-2026-64560Адаптация proof of concept для Android CVE-2026-64560 под конкретное устройство
для перечисленных ниже сборок OnePlus 13 (PJZ110). Обеспечивает временный root-
доступ для текущей загрузки через вспомогательный инструмент, работающий только
из ADB-shell.
[!WARNING] Это экспериментальный код эксплойта ядра. Он может перезагрузить устройство, повредить состояние ядра или привести к потере данных. Используйте его только на устройстве, которым вы владеете или которое вам явно разрешено тестировать. Сначала сделайте резервную копию важных данных.
Этот репозиторий нацелен на образы ядра, а его профили — на отпечатки
сборок; OTA может изменить одно без другого. Обе сборки ниже содержат
побайтово идентичное ядро, поэтому они разделяют все смещения и различаются
только строкой device-gate. docs/BUILDS.md — это индекс и
дерево решений для нового образа; начните оттуда.
BP2A.250605.015 | CP2A.260605.016 | |
|---|---|---|
| Android | 16 | 17 |
| Отпечаток | OnePlus/PJZ110/OP5D0DL1:16/BP2A.250605.015/V.58c08ac-32ff28e-33c0954:user/release-keys | OnePlus/PJZ110/OP5D0DL1:17/CP2A.260605.016/V.34246cc-e2d62b-e2d628:user/release-keys |
| Ядро | 6.6.118-android15-8-g9bc34d5b0c79-abogki537459655-4k | то же |
| Размер страницы / CPU | 4 КиБ / 8 онлайн | то же |
| SHA-256 декодированного Image | ee5ee448d2985eeeb7a8b5ad2e1efc34eeb410a8beae0ab484504d739124d613 | то же |
| Полезная нагрузка | bin/cve-2026-64560-fanout-op13-bp2a.250605.015 | bin/cve-2026-64560-fanout-op13-cp2a.260605.016 |
Запускающий скрипт отклоняет неожиданный отпечаток и проверяет каждую входящую в комплект полезную нагрузку перед выполнением. Этот репозиторий не содержит образов прошивки, ключей устройства или уникальных для устройства секретов.
Требования:
adb, доступным в PATHИз корня репозитория:
sh scripts/boot-campaign.sh -s <serial> -p bin/cve-2026-64560-fanout-op13-cp2a.260605.016 -n 10
После ROOT_SUCCESS любой новый терминал может открыть временную root-оболочку:
adb -s <serial> shell -T /data/local/tmp/su
Выполните id, чтобы убедиться в uid=0(root). Доступ сохраняется только на
текущую загрузку; после перезагрузки запустите заново. Ни один раздел boot,
vendor или system не изменяется.
Эксплойт содержит вероятностную гонку в ядре. Цепочка надёжно достигает стадии
bridge и проходит её read gate примерно в одной загрузке из восьми, поэтому
пустая серия загрузок не является доказательством того, что что-то сломано —
планируйте загрузки, и см.
docs/BUILDS.md насчёт одного
счётчика, который выглядит как сигнал сбоя, но таковым не является.
scripts/boot-campaign.sh — это цикл запуска на POSIX sh, для хостов, где
PowerShell-хост для scripts/root.ps1 недоступен. Оба применяют одни и те же
условия.
Android NDK r29 и API 35 — значения по умолчанию для воспроизводимой сборки. NDK по умолчанию отсутствует, поэтому укажите его корень:
.\scripts\build.ps1 -Profile profiles\op13\CP2A.260605.016.json -NdkRoot <path-to-ndk>
Скрипт собирает стратегии эксплойта и вспомогательный инструмент temporary-su, удаляет отладочную информацию из выходных файлов и проверяет их закреплённые значения SHA-256.
rotate собирается, но намеренно не продвигается: он уронил ядро на этом
устройстве и не был повторно проверен после перекалибровки таймера.
python tools/extract_image.py <boot.img> <out> # compare the Image digest first
python tools/port_target.py --profile profiles/op13/<BUILD>.json
Всё, что принадлежит сборке, названо в честь этой сборки, поэтому две сборки
одного устройства никогда не конфликтуют. См. docs/BUILDS.md
для дерева решений и docs/PORTING.md для полного чек-листа.
Фреймворк эксплойта, который адаптирует этот репозиторий — исходники эксплойта,
стадии получения учётных данных и восстановления, вспомогательный инструмент
temporary-su, воспроизводимая сборка, адаптивный запуск и набор инструментов
для портирования — происходит из адаптации dada для Xiaomi 15:
Смещения OnePlus 13, тюнинг гонки и валидация здесь были измерены на этом
устройстве, а не перенесены; две цели ядра — это разные образы, поэтому почти
каждый адрес отличается. Профиль и полезные нагрузки dada сохранены как
эталон, на котором фреймворк изначально валидировался.
Оригинальный proof of concept и сама уязвимость находятся выше обоих:
Точные ревизии и исправления Linux перечислены в
docs/UPSTREAM.md.
Apache License 2.0, унаследована от работы upstream. См. LICENSE
и NOTICE.
| Путь | Назначение |
|---|
bin/ | Проверенные релизные полезные нагрузки AArch64 |
profiles/op13/<BUILD>.json | Описания целей, по одному на отпечаток сборки |
profiles/dada/ | Цель Xiaomi 15, из которой пришёл этот фреймворк, сохранена как справочная |
src/ | Исходники на C, генерируемые для каждой сборки из общих шаблонов |
targets/ | Измеренные наборы смещений для образа ядра |
evidence/ | Урезанные логи цепочки из запусков, достигших root |
scripts/boot-campaign.sh | Цикл загрузок с тепловыми условиями, условиями стабилизации и тайм-аутами |
scripts/sweep.sh | Несколько настроек тюнинга за одну загрузку |
scripts/root.ps1, build.ps1, new-target.ps1 | Запуск, сборка и создание каркаса |
tools/extract_image.py | Извлечение образа ядра из дампа boot, оба дайджеста |
tools/kallsyms_extract.py | Таблица символов из сырого arm64 Image (с самопроверкой) |
tools/ksym.py | Поиск символов в извлечённой таблице |
tools/btf_offsets.py | Смещения членов структур из BTF-блоба Image |
tools/port_target.py | Генерирует исходник сборки из шаблона + профиля |
docs/BUILDS.md | Индекс сборок, дерево решений, подводные камни кампании |
docs/OP13.md | Вывод каждого смещения с доказательствами |
docs/PORTING.md | Чек-лист адаптации и продвижения новой сборки |
docs/UPSTREAM.md | Происхождение из upstream и зафиксированные ревизии |