Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-98180 — Preuve de concept et reproducteur KUnit confirmé par KASAN pour CVE-2026-98180, un use-after-free dans drm/msm touchant des objets ring et VM contenant le scheduler, accessibles via SYNC_IOC_FILE_INFO non privilégié. | Kitploit
Outils/GitHubGitHub/malhyuk/cve-2026-98180
Criminalistique MémoireAnalyse des VulnérabilitésExploitationFuzzingArticles et RechercheApprentissage et Éducation
GitHubmalhyuk/cve-2026-98180

CVE-2026-98180

Preuve de concept et reproducteur KUnit confirmé par KASAN pour CVE-2026-98180, un use-after-free dans drm/msm touchant des objets ring et VM contenant le scheduler, accessibles via SYNC_IOC_FILE_INFO non privilégié.

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

CVE-2026-98180 — drm/msm : use-after-free des objets ring/VM contenant le scheduler

Un drm_sched_fence exporté vers l'espace utilisateur conserve un pointeur brut vers le drm_gpu_scheduler qui l'a produit. Dans drm/msm, ce scheduler est intégré dans struct msm_ringbuffer et struct msm_gem_vm, tous deux libérés avec un simple kfree(). Une fence terminée détenue par l'espace utilisateur survit donc à son scheduler, et un SYNC_IOC_FILE_INFO ultérieur — un ioctl non privilégié — amène drm_sched_fence_get_timeline_name() à déréférencer de la mémoire slab libérée.

BUG: KASAN: slab-use-after-free in drm_sched_fence_get_timeline_name
Read of size 8

Cause racine

drm_sched_fence_get_timeline_name() est return fence->sched->name;.

Les ops de fence du scheduler conservent un callback .release, donc la fence n'est pas détachée de ses ops lorsqu'elle signale. Une fence signalée exportée via sync_file ou drm_syncobj continue de pointer vers le scheduler intégré après que le ring ou la VM a été libéré. Selon le contrat de durée de vie dma-fence, l'exportateur doit maintenir en vie les données sous-jacentes à une fence signalée pendant une période de grâce RCU ; drm/msm ne le faisait pas.

Correctif01c8d1f385f7 — drm/msm: RCU-free the scheduler-containing ring and VM objects
Introduit par1d8a5ca436ee (drm/msm: Conversion to drm scheduler), 92395af63a99 (drm/msm: Add VM_BIND submitqueue)
Rétroporté6.18-stable, 7.2-stable (Greg Kroah-Hartman, 2026-09-22)
Accessibiliténon privilégié — SYNC_IOC_FILE_INFO sur un fd de fence
Impactlecture UAF de slab libéré (fuite d'informations / lecture arbitraire du pointeur name de l'objet libéré)

Le correctif remplace kfree() par kfree_rcu() pour les deux objets conteneurs :

-	kfree(vm);
+	kfree_rcu(vm, rcu);
...
-	kfree(ring);
+	kfree_rcu(ring, rcu);

Reproduction

Le bug se situe dans la gestion générique de la durée de vie drm/sched, il se reproduit donc sans matériel Adreno à l'aide d'un scheduler mock KUnit. C'est la preuve fournie dans evidence/kasan-report.txt.

cd poc && ./run-repro.sh            # applies 0001-…patch, builds KUnit + KASAN, runs
  • poc/0001-drm-sched-kunit-uaf-repro.patch — reproducteur KUnit indépendant du matériel (confirmé par KASAN)
  • poc/poc_userspace_drm_sched_uaf.c — la séquence d'ioctl non privilégiée en espace utilisateur sur un pilote affecté
  • poc/kunitconfig, poc/run-repro.sh — harnais de compilation/exécution
  • evidence/kasan-report.txt — le rapport KASAN slab-use-after-free

poc_userspace_drm_sched_uaf.c est écrit pour AMD XDNA comme exemple concret car ce périphérique était disponible ; la même forme s'applique à msm (MSM_SUBMITQUEUE / VM_BIND exportent une fence terminée via sync_file_create() + fd_install()) et à nouveau.

Connexe

La même classe de durée de vie dma-fence a également été corrigée dans le cœur : 3ed11c671ff7 — dma-buf/dma-fence: fix checking signaling bit for timeline and driver name v3 (écrit par Christian König ; signalé et testé par l'auteur de ce dépôt).

Crédits

Trouvé et corrigé par JongHyuk Kim(MalHyuk) — [email protected]. Patch signé par Rob Clark et Greg Kroah-Hartman. Patchwork : https://patchwork.freedesktop.org/patch/750234/

Licence

Le code du reproducteur est sous GPL-2.0, en accord avec les sources du noyau dont il dérive.

Télécharger l’outil