
Recherche sur DirtyFrag CVE-2026-43284 pour les appareils 5.4-qgki
Date : 2026-10-07/08 Appareils : Redmi Note 11 Pro 5G (veux, 5.4.274-qgki) & POCO X5 5G (moonstone, 5.4.191-qgki) SoC : Snapdragon 695 (SM6375)
| CVE | Statut | Notes |
|---|---|---|
| CVE-2026-43284 (DirtyFrag) | ❌ Mort | Nécessite MSG_SPLICE_PAGES (noyau 6.5+) |
| CVE-2026-24088 (Qualcomm fastboot) | ⚠️ Spécifique au bootloader | TheFliss : « unknown command » sur son appareil |
| CVE-2022-2602 (io_uring UAF) | ❌ Mort | Le noyau bloque le chemin d'enregistrement (EFAULT/EINVAL) |
| CVE-2022-20421 (BadSpin) | ❌ Essayé, sans succès | Compile correctement, boucle sans gagner la course |
| CVE-2023-20938 (binder UAF) | ✅ Vulnérable (les deux) | Pas encore tenté |
| CVE-2023-4622 (af_unix UAF) | ✅ Vulnérable (les deux) | Pas encore tenté |
| CVE-2026-43499 (GhostLock) | ❓ Possiblement vulnérable | L'application GhostLock ne fonctionne pas sur 5.4 par conception |
| CVE KGSL (5x) | ❓ Possiblement vulnérable | 2024-38399 dispose d'un writeup+PoC |
Verdict : Non réalisable sur 5.4.
Le bug existe dans 5.4 (code de 4.11), mais l'exploit nécessite le support
MSG_SPLICE_PAGES pour UDP afin de disposer de la primitive d'écriture dans le
page-cache. Celui-ci a été introduit dans le noyau 6.5. Sur 5.4, splice() vers
UDP effectue une copie classique — aucun attachement de page partagée.
CVE-2026-43500 (variante RxRPC) n'est pas non plus applicable — le code RxRPC a été introduit dans 6.8.
Dépôt : https://github.com/HirokiAkihiko/dirtyfrag-research
Verdict : Spécifique au bootloader, pas universel.
Bug dans Qualcomm ABL : fastboot oem set-gpu-preemption n'assainit pas les
arguments, permettant l'injection de androidboot.selinux=permissive dans la
ligne de commande du noyau.
Résultat du test (TheFliss) : FAILED (remote: 'unknown command') — son
bootloader n'implémente pas la commande. Ce CVE dépend de la version spécifique
de l'ABL.
Verdict : Mort sur ces appareils. Le noyau bloque activement le chemin d'enregistrement.
Travail effectué :
Constats :
CONFIG_IO_URING=y confirméio_uring_setup fonctionne avec des flags simples (SQPOLL bloqué → nécessite CAP_SYS_ADMIN)IORING_REGISTER_FILES → EFAULT (constant, même via SVC brut)IORING_REGISTER_BUFFERS → EINVALLa primitive UAF nécessite un IORING_REGISTER_FILES réussi. Sans cela, la
chaîne d'exploitation ne peut pas progresser.
Paquet : ~/workspace/cve-2022-2602-bundle/ (source, binaires, diagnostics)
Verdict : Compile et s'exécute, mais ne réussit pas sur veux.
Travail effectué :
mateusvdcastro/badspinexploit.c (find_dev_config())dev_config.h (modèle 2201116SG, Android 13, noyau 5.4.274, SPL 2024-12)libbadspin.so (345K, ARM64)TEST_VULN=1Résultat du test : dev_config_init a d'abord échoué (incohérence du mois SPL :
l'entrée avait month=1, l'appareil a 2024-12). Corrigé via GitHub. Après
correction, l'exploit s'exécute et déclenche la vulnérabilité (« Trigger
use-after-free ») mais boucle indéfiniment sans gagner la condition de course.
Dépôt : https://github.com/HirokiAkihiko/badspin-veux (privé)
bdc1c5fac982 et 4df153652cc4 ne sont pas présents dans la source Xiaomi4821df2ffe38 n'est pas présente ; skb_peek_tail est toujours sans verroucurrent->pi_blocked_on = NULL présent)Les étiquettes de version sont trompeuses. veux-r-oss est étiqueté 5.4.274 mais il lui manque des rétroportages stables 5.4.y qui devraient s'y trouver (correctifs binder de 2023-06, correctif af_unix de 2023-08). Vérifiez toujours au niveau du code, pas d'après le numéro de version.
~/workspace/cve-2022-2602-bundle/~/workspace/cve-hunt/