Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ghostlock-myron-tw — GhostLock (CVE-2026-43499) port d'exploit kernel pour le firmware Taiwan du REDMI K90 Pro Max (myron, WPMTWXM) — offsets, guide de compilation, binaire précompilé | Kitploit
Outils/GitHubGitHub/jason5545/ghostlock-myron-tw
Sécurité AndroidEscalade de PrivilègesExploitationRétro-ingénierieSécurité MobileExploitation de Binaires
GitHubjason5545/ghostlock-myron-tw

ghostlock-myron-tw

GhostLock (CVE-2026-43499) port d'exploit kernel pour le firmware Taiwan du REDMI K90 Pro Max (myron, WPMTWXM) — offsets, guide de compilation, binaire précompilé

Voir le dépôt
5il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

GhostLock pour POCO F8 Ultra / REDMI K90 Pro Max — Variante globale et taïwanaise (myron, WPMTWXM)

Portage de l'exploit noyau GhostLock (CVE-2026-43499) pour le firmware global/taïwanais du POCO F8 Ultra / REDMI K90 Pro Max (nom de code myron, Snapdragon 8 Elite Gen 5 / SM8850).

Cible : HyperOS OS3.0.6.0.WPMTWXM — noyau 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k

Résumé en anglais ci-dessous / 下方有英文摘要。


Pourquoi ce port est nécessaire

Même téléphone, même nom de code, mais le noyau de la version internationale/taïwanaise (WPMTWXM, c'est-à-dire POCO F8 Ultra) et celui de la version continentale (WPMCNXM) ne sont pas le même binaire :

ROMversion du noyaudate de compilation
Version taïwanaise 3.0.1.0.WPMTWXM...-ga5f232d1ead0-ab14083253-4k2025-09-11
Version taïwanaise 3.0.6.0.WPMTWXM...-g5a0e85dd9db0-ab14499855-4k2025-11-26
Version chinoise continentale 3.0.306/308.WPMCNXM...-g16e473de48a3-abogki462654244-4k2025-11-19
  • La version continentale suit la branche GKI officielle de Google (abogki*), tandis que la version taïwanaise utilise la branche d'intégration propre à Xiaomi
  • Les commits git diffèrent des deux côtés, la config présente 7 options d'écart, et tout est compilé avec +pgo +bolt +lto — toute différence de code bouleverse complètement la disposition des symboles
  • Mesures réelles : init_task/init_cred diffèrent de 0x10000, selinux_state diffère de 0x120c8 (décalage non fixe)

Les exploits de type data-only comme GhostLock nécessitent les adresses exactes de cette compilation précise ; par conséquent, toutes les payloads calculées pour la version chinoise continentale sont totalement invalides sur la version internationale. Ce dépôt a pour but de fournir la table d'offsets manquante pour la version internationale.

Contenu

  • offsets/myron_tw/offsets.h — cible complète de la version taïwanaise 3.0.6.0 (pour JoinChang/ghostlock-oneplus)
  • scripts/device_step1.sh — script de sauvegarde ABL après root + flash de l'EFI unlock
  • Les binaires ghostlock compilés (arm64) se trouvent dans Releases

Résultats d'analyse vérifiés

  1. Exactitude de l'extraction statique de kallsyms : contre-vérification par relecture du binaire en prenant _text comme référence — init_task.comm="swapper", init_cred.usage=4, init_uts_ns.release identiques caractère par caractère à uname. Des offsets fiables peuvent être obtenus sans root sur un appareil réel.
  2. La disposition des structures est identique à celle de la version continentale (vérifiée par BTF) : task_struct 5184 octets, cred@0x900, pi_blocked_on@0xA18, etc., conformes à STRUCT_OFFSETS_6_12 en amont.
  3. Faisabilité de la disposition de pile : futex_wait_requeue_pi (frame 0x1c0, waiter@sp+0x80) et core_sys_select (frame 0x1b0, stack_fds@sp+0x18) sont identiques au Xiaomi 17 (pudding) déjà vérifié comme fonctionnel → PSELECT_SHIFT=0.
  4. selinux_state.enforcing est à +0, policycap à +2 ; une écriture d'un seul octet ne corrompt pas policycap.
  5. Rust ashmem → seul le Path B (écriture PI directe) est utilisable, le Path A (UMH) ne l'est pas.

Compilation

git clone https://github.com/JoinChang/ghostlock-oneplus.git
cd ghostlock-oneplus
cp /path/to/this-repo/offsets/myron_tw/offsets.h src/devices/myron_tw/offsets.h
# 在 src/devices/offsets.h 的 #include 清單加一行:
#   #include "myron_tw/offsets.h"
make NDK_CC=<你的 NDK>/toolchains/llvm/prebuilt/*/bin/aarch64-linux-android35-clang

Utilisation

adb shell uname -r
# 必須是 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k,否則程式會拒絕執行

adb push ghostlock /data/local/tmp/e
adb shell chmod 755 /data/local/tmp/e
adb shell /data/local/tmp/e
  • Succès → root shell + SELinux permissive (root logiciel, invalide après redémarrage)
  • Échec au redémarrage = fenêtre temporelle manquée, relancer ; en cas de panics consécutifs, essayer des ajustements fins comme PSELECT_SHIFT=-1
  • Ne pas laisser l'appareil faire une OTA — après la mise à jour, le noyau est remplacé, les offsets deviennent invalides, et la nouvelle version peut déjà avoir corrigé la vulnérabilité

Suite (déverrouillage BL)

Après le root, les appareils en version internationale peuvent être déverrouillés via la méthode de remplacement ABL (sans quota officiel) : sauvegarder abl_a/b → flasher l'EFI unlock → flasher via fastboot l'ABL d'usine + spoof → restaurer. L'ABL d'usine est obtenu à partir du abl.img de la ROM 3.0.1.0 version Taïwan en votre possession (ce repo ne contient pas les fichiers de firmware propriétaires Xiaomi). scripts/device_step1.sh est la partie côté téléphone de ce processus. Ce processus n'efface pas les données utilisateur.

Portage vers d'autres versions régionales (MIXM / EUXM / INXM…)

Ce dépôt ne couvre que WPMTWXM. Xiaomi compile le noyau séparément pour chaque branche régionale, les offsets ne peuvent pas être partagés — mais la méthode, oui. Dans tools/ se trouvent les trois outils que nous utilisons réellement pour générer la cible de la version taïwanaise :

# 1. 從你的 OTA 包解出 boot.img(payload.bin 用 payload-dumper),然後:
python3 tools/extract_offsets.py boot.img          # 產生 OFFSETS_ENTRY + 交叉驗證
python3 tools/check_btf.py boot.img                # 驗證 struct 布局(決定 STRUCT_OFFSETS 能否沿用)
python3 tools/check_feasibility.py boot.img        # 驗證 pselect 棧配置(決定 SHIFT)
  • extract_offsets.py : extrait kallsyms, calcule tous les décalages, puis relit init_task.comm / init_cred.usage / init_uts_ns.release pour effectuer une validation croisée — ne pas l'utiliser si elle échoue
  • check_btf.py : lit depuis le BTF intégré au noyau les décalages des champs task_struct/cred/selinux_state, et les compare un par un avec STRUCT_OFFSETS_6_12
  • check_feasibility.py : désassemble la configuration de frame de futex_wait_requeue_pi et core_sys_select, et la compare avec des noyaux connus comme viables (nécessite pip install capstone)

Les trois sont passés, votre version pourra probablement fonctionner. Vous êtes invités à envoyer une PR pour ajouter la cible de la nouvelle version régionale.

Remerciements

  • Nebula Security — recherche originale et PoC de GhostLock
  • JoinChang/ghostlock-oneplus — base de ce port
  • Diverses expériences de portage de la communauté Coolapk

English Summary

Le firmware global du POCO F8 Ultra (REDMI K90 Pro Max) embarque une version de noyau différente de celle du firmware CN (branche, configuration et disposition PGO/BOLT différentes), de sorte que tous les offsets GhostLock publiés par la communauté — calculés sur des noyaux CN ogki — échouent sur les appareils globaux. Ce dépôt fournit les offsets cibles manquants pour OS3.0.6.0.WPMTWXM (6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k), extraits statiquement du paquet OTA officiel et validés par recoupement (kallsyms + BTF + lectures dans l'image), ainsi qu'un binaire précompilé dans Releases. Les dispositions des structures sont identiques à celles de la version CN ; seules les adresses des symboles diffèrent. La disposition de la pile d'appels correspond au Xiaomi 17 (pudding) vérifié comme fonctionnel.

À utiliser uniquement sur votre propre appareil. La vulnérabilité est publique (divulgation imposée par kernelCTF) ; ce port existe pour que les propriétaires de la variante globale puissent rooter leurs propres téléphones.

Avis de non-responsabilité / Disclaimer

僅供自有裝置的授權安全研究。Pour la recherche en sécurité autorisée sur vos propres appareils uniquement. Aucun résultat n'est garanti ; utilisation à vos propres risques.

Télécharger l’outil