
Honor WIN RT (AAK-AN00) CVE-2026-43499 temporärer Root - Recherchenotizen
(Alles von deepseek geschrieben, ich verstehe selbst nichts davon)
Geräte-Bootloader dauerhaft gesperrt (
ro.oem_unlock.supportedist leer), kein fastboot, kein persistentes su, kein Magisk. Der einzige noch gangbare Weg ist eine Kernel-Schwachstelle. Dieses Repository dokumentiert den vollständigen Prozess von „Kann man es überhaupt ausnutzen" bis „Wie stabil ist es tatsächlich nach der Ausnutzung".
Art: temporäres Root, nach Neustart ungültig.
Dieses Repository dokumentiert einen Sicherheitsforschungsprozess auf einem eigenen Gerät mit dem Ziel, die Ursachen und Stabilitätsgrenzen einer Kernel-PI-Race-Bedingung zu verstehen.
Der einzige erfolgreich beschrittene Pfad ist:
CVE-2026-43499 (futex PI Race write-what-where) + rt_sigreturn Carrier
→ LD_PRELOAD-Injektion in Shell-Domain-Prozess
→ Zweistufig: zuerst SELinux Permissive setzen, dann task->real_cred / cred auf init_cred ändern
→ uid=0(root) context=u:r:kernel:s0, und su-Daemon implantieren
Aber was wirklich aufgeschrieben werden sollte, ist nicht „wie man root erlangt" — sondern was danach passiert.
Was man erhält, ist kein stabiles Root, sondern ein „jederzeit zur Explosion bringbarer Zustand".
Das Schreibprimitiv des Exploits hängt einen gefälschten
rt_mutex_waiterin die echte futex-PI-Kette, und der Träger dieses Waiters ist ein Kernel-Stack / Spray-Page, der von nachfolgenden Systemaufrufen wiederverwendet wird. Daher kann ab dem Moment, in dem root erreicht ist, jede systemweite Scheduling- oder Prioritätsänderung darauf treten und direkt einen Kernel-Panic-Neustart auslösen. Das ist kein Bug, sondern der inhärente Preis dieser Ausnutzungstechnik — siehedocs/03.
Warum die Kernel-Version zwingend festgelegt werden muss: Der Fehler wurde in 6.6.140 behoben; das Gerät hat 6.6.118 < 6.6.140, ist also noch betroffen;
gleichzeitig sind alle Kernel-Symboladressen und die „Carrier-Geometrie" des Exploits an genau diesen einen Build gebunden. Nach einem Kernel-Wechsel wird die Offset-Tabelle sofort ungültig, und ein Zurückrollen ist in der Regel nicht möglich.
┌─ Material ────────────────────────────────────────────┐
│ boot.img + xbl_config.elf (aus Geräte-Firmware extrahiert) │
│ ↓ Symbolauflösung │
│ target.h (Kernel-Symboladressen, byteweise mit kallsyms abgeglichen) │
│ ↓ Build │
│ preload.so ──► geräteseitig /data/local/tmp/*.so │
└────────────────────────────────────────────────────────┘
↓ LD_PRELOAD-Injektion
┌──────────── Zweistufig (erfordert zwei unabhängige Prozesse) ────────────┐
│ Phase A GW_SELINUX=1 → selinux_state.enforcing = 0 │
│ Phase B GW_CHAIN=1 RTSIG_TASK_INIT=1 GW_SU=1 │
│ → task->real_cred ← &init_cred │
│ → task->cred ← &init_cred (durch „Vorbereitungs-Writer"-Prozess) │
│ → setresuid(0,0,0) Normalisierung │
│ → eingebettetes su + Daemon implantieren │
└─────────────────────────────────────────────────────────────┘
↓
uid=0(root) context=u:r:kernel:s0
Drei Dinge, die zwingend korrekt gemacht werden müssen (sonst hängt es oder es kommt direkt zum Panic):
real_cred, dann cred. Umgekehrte Reihenfolge führt sofort zu voller Berechtigung und außer Kontrolle geratenen Threads.cred ≠ real_cred. In diesem Moment führt jedes sched_setaffinity zu EPERM → die gesamte Runde hängt.
Die richtige Lösung ist, vor dem ersten Schnitt einen „Vorbereitungs-Writer"-Prozess zu forken (saubere Credentials); der Elternprozess führt den ersten Schnitt aus, der Writer den zweiten, und keiner befindet sich im transienten Zustand, wenn er einen Syscall absetzt.alias(image) = PAGE_OFFSET | (image − KIMAGE_TEXT_BASE + Δ), über Neustarts hinweg stabil;
der eigentliche Wert der sogenannten „Slide-Phase" ist die Selbstprüfung des Schreibprimitivs, nicht die Umgehung von KASLR.Upstream-Framework:
Linuxoid-cn/CVE-2026-43499-Poc-Analysis. Beachte: Dies ist nicht GhostLock — GhostLock nutzt den pselect-Pfad, der nicht zur Waiter-Landegeometrie dieses Builds passt, siehedocs/06.
Wenn du ebenfalls ein Gerät mit gesperrtem BL angreifst, überlege dir zuerst genau, was du mit root machen willst, denn auf solchen Geräten ist root wahrscheinlich ein Fenster, das nur etwa zehn Minuten lang nutzbar ist. Erstelle eine Liste der „Operationen, die root erfordern und über Neustarts hinweg erhalten bleiben müssen", führe sie in einem Durchgang aus und mache dann
rebootin einen sauberen Zustand. Versuche nicht, „die Nebenwirkungen zu beseitigen" — das ist der Preis der Technik selbst.
| Punkt | Wert | Beschreibung |
|---|
| Modell | Honor WIN RT, Modell AAK-AN00 | Vermarktungsname „Honor WIN RT" |
| SoC | Snapdragon 8 Elite SM8750-AB | Firmware nicht kompatibel mit Honor WIN (AAP-AN00, SM8850-AC) |
| System | Android 16 / MagicOS 10 | — |
| Kernel | 6.6.118-android15-8-gf17133276a57-abogki518694926-4k | ★ Harte Bedingung, zeichengenaue Übereinstimmung |
| Kernel-Konfiguration | 4K Pages, VA_BITS=39, CONFIG_FUTEX_PI=y | Voraussetzung für die Carrier-Geometrie |
| Firmware-Paket | .170 | .160 / .175 nicht getestet |
| Bootloader | Dauerhaft gesperrt | Kein fastboot / kein persistentes su |
| Dokument | Inhalt |
|---|
| 01 · Machbarkeitsanalyse | Warum nur noch rt_sigreturn als Carrier übrig bleibt |
| 02 · Privilegieneskalationskette und Erfolgsfaktoren | Schreibprimitiv, Sechs-Schritt-Kette, Vorbereitungs-Writer, Erfolgskriterien |
| 03 · Wahre Ursache der Instabilität: PI-Ketten-Rückstände | ★ Kern. Netzwerkausfall ist kein Netzwerkausfall, sondern Panic; inkl. Disassemblierung der Absturzstelle |
| 04 · Computerfreier Kanal: Shizuku | Shizukus rish als Ersatz für adb zum Starten des Exploits |
| 05 · KernelSU late-load | LKM-Aktivierungsmethode und warum sie der gefährlichste Zünder ist |
| 06 · Liste der Sackgassen | Wege, die versucht wurden, aber nicht funktionieren, damit andere sie nicht erneut probieren |
| 07 · Fallstricke und Umgebung | Panic-Stack ohne root erfassen, Skript-Umgebungsfallen |
| tools/ | Wiederverwendbare Skripte (bereinigte allgemeine Version) |
| Datum | Fortschritt |
|---|
| 09-08 | Bestätigt: BL dauerhaft gesperrt, OEM-Entsperrungskanal entfernt ⇒ offiziellen Weg aufgegeben, auf Schwachstellen-Weg gewechselt |
| 09-09 | Hersteller-Service-Firmware-Bibliothek geknackt, boot.img erhalten, Kernel und Symbole extrahiert |
| 09-10 | Carrier-Suche auf rt_sigreturn konvergiert; Privilegieneskalation erfolgreich (20:14), uid=0 |
| 09-11 | Computerfreier Kanal (Shizuku) erschlossen; KernelSU aktivierbar; wahre Ursache des „Netzwerkausfalls" identifiziert = PI-Ketten-Rückstände |