
Huawei P10 VTR-L29C432B151 CVE-2017-8890 エクスプロイト研究とブートローダーアンロックの道のり
このリポジトリは、所有者が承認した調査プロジェクトを文書化したものです。このプロジェクトでは、 CVE-2017-8890 を特定の Huawei P10 ファームウェアに移植し、カーネルの use-after-free を 任意のカーネル読み取り/書き込みおよび一時的な root に変換し、Huawei の NVE ジャーナルを再構築し、 正規の 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 アップグレード後も存続し、同じ選択済み平文で再度ロックを解除できました。これは、資格情報が Android システムやブートイメージではなく、デバイスの永続的な NVE データに存在することを示しています。
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 年 7 月にこの調査プロジェクトで行われた修正として識別されています。
帰属と変更の詳細については、NOTICE.md を参照してください。
所有しているハードウェア、または明示的にテストを許可されたハードウェアでのみこの作業を使用してください。 ブートローダーのロック解除はユーザーデータを消去します。このエクスプロイトは意図的にカーネルオブジェクトを 破損させ、制御された再起動経路に到達しない限り、通常は後でクリーンアップのパニックを引き起こします。 保証はなく、リカバリの保証もありません。