
DirtyFrag-CVE-2026-43284-Forschung für 5.4-qgki-Geräte
Datum: 2026-10-07/08 Geräte: Redmi Note 11 Pro 5G (veux, 5.4.274-qgki) & POCO X5 5G (moonstone, 5.4.191-qgki) SoC: Snapdragon 695 (SM6375)
| CVE | Status | Anmerkungen |
|---|---|---|
| CVE-2026-43284 (DirtyFrag) | ❌ Tot | Benötigt MSG_SPLICE_PAGES (Kernel 6.5+) |
| CVE-2026-24088 (Qualcomm fastboot) | ⚠️ Bootloader-spezifisch | TheFliss: „unknown command" auf seinem Gerät |
| CVE-2022-2602 (io_uring UAF) | ❌ Tot | Kernel blockiert den Register-Pfad (EFAULT/EINVAL) |
| CVE-2022-20421 (BadSpin) | ❌ Versucht, kein Erfolg | Kompiliert OK, läuft in Schleife ohne Race zu gewinnen |
| CVE-2023-20938 (binder UAF) | ✅ Anfällig (beide) | Noch nicht versucht |
| CVE-2023-4622 (af_unix UAF) | ✅ Anfällig (beide) | Noch nicht versucht |
| CVE-2026-43499 (GhostLock) | ❓ Möglicherweise anfällig | GhostLock-App funktioniert auf 5.4 konstruktionsbedingt nicht |
| KGSL CVEs (5x) | ❓ Möglicherweise anfällig | 2024-38399 hat Writeup+PoC |
Urteil: Auf 5.4 nicht machbar.
Der Bug existiert in 5.4 (Code aus 4.11), aber der Exploit benötigt
MSG_SPLICE_PAGES-UDP-Unterstützung für das Page-Cache-Schreib-Primitiv. Diese
wurde in Kernel 6.5 eingeführt. Auf 5.4 führt splice() zu UDP eine reguläre
Kopie durch — keine gemeinsame Seitenanbindung.
CVE-2026-43500 (RxRPC-Variante) ist ebenfalls nicht anwendbar — RxRPC-Code wurde in 6.8 eingeführt.
Repo: https://github.com/HirokiAkihiko/dirtyfrag-research
Urteil: Bootloader-spezifisch, nicht universell.
Bug in Qualcomm ABL: fastboot oem set-gpu-preemption bereinigt Argumente
nicht, was die Injektion von androidboot.selinux=permissive in die
Kernel-Cmdline ermöglicht.
Testergebnis (TheFliss): FAILED (remote: 'unknown command') — sein
Bootloader implementiert den Befehl nicht. Diese CVE hängt vom spezifischen
ABL-Build ab.
Urteil: Tot auf diesen Geräten. Der Kernel blockiert den Register-Pfad aktiv.
Geleistete Arbeit:
Erkenntnisse:
CONFIG_IO_URING=y bestätigtio_uring_setup funktioniert mit einfachen Flags (SQPOLL blockiert → benötigt CAP_SYS_ADMIN)IORING_REGISTER_FILES → EFAULT (konsistent, auch via rohem SVC)IORING_REGISTER_BUFFERS → EINVALDas UAF-Primitiv erfordert ein erfolgreiches IORING_REGISTER_FILES. Ohne
dieses kann die Exploit-Kette nicht fortgesetzt werden.
Bundle: ~/workspace/cve-2022-2602-bundle/ (Quellcode, Binaries, Diagnose)
Urteil: Kompiliert und läuft, hat aber auf veux keinen Erfolg.
Geleistete Arbeit:
mateusvdcastro/badspinexploit.c (find_dev_config()) entferntdev_config.h hinzugefügt (Modell 2201116SG, Android 13, Kernel 5.4.274, SPL 2024-12)libbadspin.so (345K, ARM64)TEST_VULN=1 getestetTestergebnis: dev_config_init schlug zunächst fehl (SPL-Monatsabweichung:
Eintrag hatte month=1, Gerät hat 2024-12). Via GitHub behoben. Nach dem Fix
läuft der Exploit und löst die Schwachstelle aus („Trigger use-after-free"),
durchläuft aber endlos ohne die Race Condition zu gewinnen.
Repo: https://github.com/HirokiAkihiko/badspin-veux (privat)
bdc1c5fac982 und 4df153652cc4 nicht im Xiaomi-Quellcode vorhanden4821df2ffe38 nicht vorhanden; skb_peek_tail weiterhin locklesscurrent->pi_blocked_on = NULL vorhanden)Versionsbezeichnungen sind irreführend. veux-r-oss ist als 5.4.274 gekennzeichnet, aber es fehlen stabile 5.4.y-Backports, die vorhanden sein sollten (Binder-Fixes von 2023-06, af_unix- Fix von 2023-08). Immer auf Code-Ebene verifizieren, nicht anhand der Versionsnummer.
~/workspace/cve-2022-2602-bundle/~/workspace/cve-hunt/