Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cve-2026-43499-aak-an00 — Honor WIN RT (AAK-AN00) CVE-2026-43499 root temporaire - notes de recherche | Kitploit
Outils/GitHubGitHub/hui191/cve-2026-43499-aak-an00
Sécurité AndroidEscalade de PrivilègesAnalyse des VulnérabilitésExploitationRétro-ingénieriePost-ExploitationSécurité MobileArticles et RechercheExploitation de Binaires
GitHubhui191/cve-2026-43499-aak-an00

cve-2026-43499-aak-an00

Honor WIN RT (AAK-AN00) CVE-2026-43499 root temporaire - notes de recherche

il y a 4 joursPas 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
Voir le dépôt

CVE-2026-43499 · Honor WIN RT (AAK-AN00) Notes de recherche sur le root temporaire

(tout a été écrit par deepseek, je n'y comprends rien)

Le Bootloader de l'appareil est verrouillé en permanence (ro.oem_unlock.supported est vide), pas de fastboot, pas de su persistant, pas de Magisk. La seule voie encore praticable est une vulnérabilité du noyau. Ce dépôt documente le processus complet, de « est-ce exploitable » à « à quel point c'est stable une fois exploité ».

Nature : root temporaire, invalide après redémarrage.


Avertissement

Ce dépôt documente un processus de recherche de sécurité mené sur mon propre appareil, dans le but de comprendre les causes et les limites de stabilité d'une condition de course PI du noyau.

  • Ne contient aucun binaire exploit ni charge utile directement exécutable — les charges utiles et le framework proviennent de projets publics en amont ; ce dépôt ne fait que les citer, sans les redistribuer.
  • Ne fournit pas de tutoriel pour contourner les protections d'un constructeur spécifique, et n'encourage pas l'utilisation sur des appareils non autorisés.
  • Les offsets et adresses de symboles présents dans ce dépôt ne sont valides que pour le build de noyau listé dans ce document ; tout changement de noyau les rend caducs.
  • Les défauts concernés sont déjà corrigés en amont (voir ci-dessous). La valeur à long terme de ce document réside dans « ce compte rendu lui-même » — un retour d'expérience réel sur une vulnérabilité de course dans des conditions non idéales, y compris tous ses effets secondaires désagréables.

0. Conclusion en une phrase

Le seul chemin qui a fonctionné est :

root@kitploit:~
CVE-2026-43499 (course PI futex write-what-where) + porteuse rt_sigreturn
  → injection LD_PRELOAD dans un processus du domaine shell
  → en deux étapes : d'abord passer SELinux en Permissive, puis modifier task->real_cred / cred en init_cred
  → uid=0(root) context=u:r:kernel:s0, et implantation d'un démon su

Mais ce qui mérite vraiment d'être écrit, ce n'est pas « comment obtenir root » — c'est ce qui se passe après.

Ce qu'on obtient n'est pas un root stable, mais un « état susceptible d'exploser à tout moment ».

La primitive d'écriture de l'exploit insère un rt_mutex_waiter falsifié dans la chaîne PI futex réelle, et le support de ce waiter est une pile noyau / page pulvérisée réutilisée par les appels système suivants. Ainsi, dès l'instant où root est obtenu, toute ordonnancement ou changement de priorité au niveau système peut le déclencher, provoquant directement un panic du noyau et un redémarrage. Ce n'est pas un bug, c'est le coût inhérent de cette technique d'exploitation — voir docs/03.


1. Périmètre d'application (toute non-conformité invalide l'ensemble de la solution)

Pourquoi la version du noyau doit être strictement respectée : le défaut est corrigé dans 6.6.140, et cette machine est en 6.6.118 < 6.6.140, donc toujours vulnérable ; de plus, toutes les adresses de symboles noyau et la « géométrie de la porteuse » de l'exploit sont ancrées sur ce build précis ; après un changement de noyau, la table d'offsets devient immédiatement caduque, et généralement sans retour possible.


2. Vue d'ensemble du chemin d'élévation de privilèges

root@kitploit:~
┌─ Matériaux ────────────────────────────────────────────┐
│ boot.img + xbl_config.elf (extraits du firmware de l'appareil) │
│        ↓ résolution de symboles                         │
│ target.h (adresses de symboles noyau, vérifiées octet par octet avec kallsyms) │
│        ↓ compilation                                    │
│ preload.so ──► /data/local/tmp/*.so sur l'appareil      │
└────────────────────────────────────────────────────────┘
                 ↓  injection LD_PRELOAD
     ┌──────────── en deux étapes (deux processus distincts obligatoires) ────────────┐
     │ Étape A  GW_SELINUX=1        → selinux_state.enforcing = 0   │
     │ Étape B  GW_CHAIN=1 RTSIG_TASK_INIT=1 GW_SU=1               │
     │         → task->real_cred ← &init_cred                      │
     │         → task->cred      ← &init_cred (réalisé par le processus « écrivain pré-positionné ») │
     │         → setresuid(0,0,0) normalisation                    │
     │         → implantation d'un su embarqué + daemon            │
     └─────────────────────────────────────────────────────────────┘
                 ↓
     uid=0(root) context=u:r:kernel:s0

Trois points à ne pas rater (une erreur bloque tout ou provoque un panic immédiat) :

  1. Règle d'ordre absolue : d'abord real_cred, ensuite cred. L'ordre inverse donne instantanément tous les privilèges et fait perdre le contrôle des threads.
  2. Entre les deux écritures, il existe nécessairement un état transitoire où cred ≠ real_cred. À ce moment, tout sched_setaffinity renvoie EPERM → blocage complet du cycle. La solution correcte est de forker le processus « écrivain pré-positionné » avant la première écriture (identifiants propres) ; le processus père effectue la première écriture, l'écrivain effectue la seconde, et aucun des deux n'émet d'appel système pendant l'état transitoire.
  3. Le modèle d'adresses est indépendant de KASLR. Toute l'exploitation passe uniquement par l'alias de la projection linéaire alias(image) = PAGE_OFFSET | (image − KIMAGE_TEXT_BASE + Δ), stable à travers les redémarrages ; la véritable valeur de la « phase slide » est l'auto-vérification de la primitive d'écriture, et non le contournement de KASLR.

Framework amont : Linuxoid-cn/CVE-2026-43499-Poc-Analysis. Attention, ce n'est pas GhostLock — GhostLock passe par la voie pselect, et la géométrie du point de chute du waiter ne correspond pas à ce build, voir docs/06.


3. Sommaire


4. Chronologie


5. Un mot pour ceux qui suivront

Si vous aussi vous ciblez un modèle dont le BL est verrouillé, réfléchissez d'abord à ce que vous voulez faire avec root, car sur ce type de modèle, root n'est probablement qu'une fenêtre utilisable de quelques dizaines de minutes. Listez les opérations qui « nécessitent root et doivent survivre au redémarrage », exécutez-les en une seule fois, puis reboot pour revenir à un état propre. N'essayez pas d'« éliminer les effets secondaires » — c'est le coût inhérent de la technique elle-même.

Télécharger l’outil
ÉlémentValeurRemarque
ModèleHonor WIN RT, modèle AAK-AN00Nom commercial « Honor WIN RT »
SoCSnapdragon 8 Elite SM8750-ABFirmware non compatible avec le Honor WIN (AAP-AN00, SM8850-AC)
SystèmeAndroid 16 / MagicOS 10—
Noyau6.6.118-android15-8-gf17133276a57-abogki518694926-4k★ Condition stricte, correspondance caractère par caractère
Configuration noyau4K pages, VA_BITS=39, CONFIG_FUTEX_PI=yPrérequis pour la géométrie de la porteuse
Paquet firmware.170.160 / .175 non testés
BootloaderVerrouillé en permanencePas de fastboot / pas de su persistant
DocumentContenu
01 · Analyse de faisabilitéPourquoi il ne reste que rt_sigreturn comme porteuse
02 · Chaîne d'élévation de privilèges et facteurs de succèsPrimitive d'écriture, chaîne en six étapes, écrivain pré-positionné, critères de succès
03 · Cause réelle de l'instabilité : résidus de chaîne PI★ Essentiel. La « coupure réseau » n'est pas une coupure réseau, c'est un panic ; inclut la désassemblage des points de crash
04 · Canal sans ordinateur : ShizukuUtiliser rish de Shizuku à la place d'adb pour lancer l'exploit
05 · late-load de KernelSUMode d'activation du LKM et pourquoi c'est le détonateur le plus dangereux
06 · Liste des impassesChemins essayés mais infructueux, pour éviter que d'autres ne les retentent
07 · Pièges et environnementObtenir une pile de panic sans root, pièges d'environnement de script
tools/Scripts réutilisables (version générique anonymisée)
DateProgrès
09-08Confirmation du verrouillage permanent du BL et de la suppression du canal de déverrouillage OEM ⇒ abandon de la voie officielle, passage à la voie des vulnérabilités
09-09Obtention du firmware après-vente du constructeur, récupération de boot.img, extraction du noyau et des symboles
09-10Convergence de la recherche de porteuse vers rt_sigreturn ; élévation de privilèges réussie (20:14), uid=0
09-11Mise en place du canal sans ordinateur (Shizuku) ; KernelSU activable ; identification de la cause réelle de la « coupure réseau » = résidus de chaîne PI