
Huawei P10 VTR-L29C432B151 CVE-2017-8890: исследование эксплойта и путь разблокировки загрузчика
Этот репозиторий документирует исследовательский проект, выполненный с разрешения владельца устройства: CVE-2017-8890 был портирован на одну из прошивок Huawei P10, use-after-free в ядре преобразован в произвольное чтение/запись в ядре и временный root, восстановлен журнал NVE от Huawei, через штатный драйвер NVE установлены заменённые учётные данные загрузчика, а также проверено, что fastboot принимает выбранный открытый код.
Целевое устройство:
4.1.18-gbed9f04Это не универсальный разблокировщик P10. Включённый профиль ядра содержит абсолютные адреса именно для этой сборки. Использование его с другим ядром может вызвать панику телефона и повредить постоянное хранилище. Обновления прошивки также могут изменить профиль, даже если маркетинговая модель устройства не изменилась.
Полное описание, безопасное для публичного распространения, доступно в PDF-отчёте.
Успешная цепочка выглядела так:
CVE-2017-8890 multicast UAF
-> controlled overlap with ip_mc_socklist
-> forced RCU grace period in the exploit's address space
-> AArch64 JOP arbitrary store
-> ptmx_fops.check_flags temporarily redirected
-> address limit widened to KERNEL_DS
-> pipe-based arbitrary kernel read/write
-> check_flags restored
-> current task credentials and SELinux SID patched
-> protected NVME partition acquired
-> replacement SHA-256 verifier written with /dev/nve0
-> complete 128 KiB generation read back and compared
-> controlled reboot
-> fastboot unlock accepted the chosen plaintext
Учётные данные загрузчика пережили более позднее официальное обновление до Android 8 / EMUI 8, даже несмотря на повторную блокировку загрузчика, и тот же выбранный открытый код снова разблокировал устройство. Это указывает на то, что учётные данные хранятся в постоянных данных NVE устройства, а не в системе Android или образе загрузки.
exploit/CVE-2017-8890/1003/ modified exploit implementation
utils/ GPLv3 androotzf support code
jni/ Android NDK build files
tools/p10_nve_journal.py read-only inspector and offline candidate builder
docs/exploit-development.md technical exploit journey
docs/nve-format.md Huawei NVE journal and credential semantics
docs/reproduction.md staged reproduction procedure
report/ redacted long-form PDF
Репозиторий не содержит скомпилированных эксплойтов, образов прошивок, дампов разделов, образов загрузки, проприетарных коммерческих утилит, кодов разблокировки, идентификаторов устройств или полученных из устройства дайджестов учётных данных.
Эксплойт основан на реализации GPLv3 idhyt/androotzf в коммите 63dfe5556e1a8cdbf6a2d3dd0ee929b07bfb48b7. Этот репозиторий сохраняет уведомления об авторстве и лицензию GPLv3 вышестоящего проекта. Изменения, касающиеся надёжности P10 B151, диагностики, чтения/записи в ядре, временного root, дампа разделов и защищённых транзакций NVE, помечены как модификации, выполненные в ходе этого исследовательского проекта в июле 2026 года.
Сведения об авторстве и подробности изменений см. в NOTICE.md.
Используйте эту работу только на оборудовании, которым вы владеете или которое вам явно разрешено тестировать. Разблокировка загрузчика стирает пользовательские данные. Эксплойт намеренно повреждает объекты ядра и, как правило, вызывает последующую панику при очистке, если только не достигает управляемого пути перезагрузки. Никаких гарантий и никакой гарантии восстановления не предоставляется.