
Adaptation de CVE-2026-43499 (GhostLock) pour ASUS ROG Phone 5S — déclenchement d'UAF + récupération de pile pselect, fuite KASLR bloquée
Étude d'adaptation de CVE-2026-43499 (GhostLock) sur ASUS ROG Phone 5S (ASUS_I005).
Conclusion : déclenchement de la vulnérabilité et récupération de pile entièrement vérifiés ; la chaîne d'élévation de privilèges n'a pas été achevée en raison d'une profondeur d'écrasement de pile insuffisante.
Concrètement :
waiter+0x28..0x40 (pi_tree_entry.rb_left et lock)waiter+0x27Analyse détaillée dans docs/05-limitations.md.
| Phase | Contenu | Statut |
|---|---|---|
| 0 | Déclenchement UAF (3 threads + CMP_REQUEUE_PI) | ✅ |
| 1 | Récupération de pile pselect timeout=0 (shift=10) | ✅ |
| 1.6 | Fuite de SP de la pile noyau W (perf PERF_SAMPLE_REGS_INTR) | ✅ |
| 2 | Écriture à adresse arbitraire (nécessite KASLR slide) | ❌ |
| — | Fuite KASLR (les 8 sources ont toutes échoué) | ❌ |
| Élément | Valeur |
|---|---|
| Appareil | ASUS ROG Phone 5S (ASUS_I005) |
| SoC | Snapdragon 888 (SM8350) |
| Android | 13 |
| Noyau | 5.4.210-qgki-perf-gc89cd02a7dfe arm64 |
| SELinux | Enforcing (u:r🐚s0) |
| CapEff | 0 |
CVE-2026-43499 (GhostLock) est une UAF de pile dans le sous-système rtmutex du noyau Linux.
remove_waiter() utilise current au lieu de waiter->task dans le chemin de restauration du verrou proxy,
laissant un pointeur suspendu résiduel dans task_struct->pi_blocked_on.
_copy_from_user s'exécute quand mêmePSELECT_WAITER_WORD_SHIFT = 10Voir docs/05-limitations.md :
docs/ Documentation d'analyse et chronologie
06-research-snapshot.md Instantané complet de la recherche07-iteration-log.md Journal des versions échouéesdisasm/ Extraits de désassemblage clésrecon/ Sorties de reconnaissanceinclude/ Table des symboles + offsets des structuressrc/ Code source du PoC (voir src/README.md)scripts/ Scripts d'analyselogs/ Journaux d'exécution (non versionnés dans git)# 1. Extraire les symboles et offsets (nécessite un vmlinux compilé à partir des sources du noyau officiel ASUS)
./scripts/extract_symbols.sh
./scripts/gen_symbols_h.sh
./scripts/extract_offsets.sh
# 2. Compiler Stage 0
aarch64-linux-gnu-gcc -static -O2 -pthread \
-o ~/tmp/work/bin/poc_stage0_trigger src/poc_stage0_trigger.c
# 3. Exécution sur l'appareil (nécessite adb shell vers l'appareil cible)
adb shell /data/local/tmp/poc_stage0_trigger
Chaîne d'outils : aarch64-linux-gnu-gcc -static -O2 -pthread
Références
· gitchw/ghostlock-cve-2026-43499 Huawei Watch 4 Pro, 5.4.210 (ARM32)
· ccp-p/ghostlock-cve-2026-43499-4.19-k40 Redmi K40, 4.19.157 (aarch64)
· JoinChang/ghostlock-oneplus Plusieurs appareils OnePlus, faisabilité de la disposition de pile
· knowlily/cve-2026-43499-honor Analyse de l'échec sur Honor
Avertissement
À usage exclusif de la recherche en sécurité. Ne pas utiliser sur des appareils non autorisés.