Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-98180 — Proof-of-concept e riproduttore KUnit confermato da KASAN per CVE-2026-98180, un use-after-free in drm/msm di oggetti ring e VM contenenti lo scheduler, raggiungibili tramite SYNC_IOC_FILE_INFO non privilegiato. | Kitploit
Strumenti/GitHubGitHub/malhyuk/cve-2026-98180
Memory ForensicsAnalisi delle VulnerabilitàExploitFuzzingPaper e RicercaApprendimento e Formazione
GitHubmalhyuk/cve-2026-98180

CVE-2026-98180

Proof-of-concept e riproduttore KUnit confermato da KASAN per CVE-2026-98180, un use-after-free in drm/msm di oggetti ring e VM contenenti lo scheduler, raggiungibili tramite SYNC_IOC_FILE_INFO non privilegiato.

Vedi Repository
19 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-98180 — drm/msm: use-after-free degli oggetti ring/VM contenenti lo scheduler

Un drm_sched_fence esportato verso lo userspace mantiene un puntatore grezzo al drm_gpu_scheduler che lo ha prodotto. In drm/msm tale scheduler è incorporato in struct msm_ringbuffer e struct msm_gem_vm, entrambi liberati con una semplice kfree(). Un fence completato trattenuto dallo userspace sopravvive quindi al suo scheduler, e un successivo SYNC_IOC_FILE_INFO — un ioctl non privilegiato — fa sì che drm_sched_fence_get_timeline_name() dereferenzi memoria slab liberata.

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

Causa principale

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

Le ops del fence dello scheduler mantengono una callback .release, quindi il fence non viene staccato dalle ops quando segnala. Un fence segnalato esportato tramite sync_file o drm_syncobj continua a puntare allo scheduler incorporato dopo che il ring o la VM sono stati liberati. Secondo il contratto di durata della dma-fence, l'esportatore deve mantenere vivi i dati che supportano un fence segnalato per un periodo di grazia RCU; drm/msm non lo faceva.

Fix01c8d1f385f7 — drm/msm: RCU-free the scheduler-containing ring and VM objects
Introdotto da1d8a5ca436ee (drm/msm: Conversion to drm scheduler), 92395af63a99 (drm/msm: Add VM_BIND submitqueue)
Backportato6.18-stable, 7.2-stable (Greg Kroah-Hartman, 2026-09-22)
Raggiungibilitànon privilegiato — SYNC_IOC_FILE_INFO su un fd di fence
Impattolettura UAF di slab liberata (info-leak / lettura arbitraria del puntatore name dell'oggetto liberato)

La correzione sostituisce kfree() con kfree_rcu() per entrambi gli oggetti contenitori:

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

Riproduzione

Il bug risiede nella gestione generica della durata in drm/sched, quindi si riproduce senza hardware Adreno usando uno scheduler mock KUnit. Questa è la prova in evidence/kasan-report.txt.

cd poc && ./run-repro.sh            # applies 0001-…patch, builds KUnit + KASAN, runs
  • poc/0001-drm-sched-kunit-uaf-repro.patch — riproduttore KUnit indipendente dall'hardware (confermato da KASAN)
  • poc/poc_userspace_drm_sched_uaf.c — la sequenza di ioctl non privilegiati dello userspace su un driver affetto
  • poc/kunitconfig, poc/run-repro.sh — harness di build/esecuzione
  • evidence/kasan-report.txt — il report KASAN slab-use-after-free

poc_userspace_drm_sched_uaf.c è scritto prendendo AMD XDNA come esempio pratico perché quel dispositivo era disponibile; la stessa forma si applica a msm (MSM_SUBMITQUEUE / VM_BIND esportano un fence completato tramite sync_file_create() + fd_install()) e a nouveau.

Correlati

La stessa classe di durata della dma-fence è stata corretta anche nel core: 3ed11c671ff7 — dma-buf/dma-fence: fix checking signaling bit for timeline and driver name v3 (scritto da Christian König; segnalato e testato dall'autore di questo repo).

Crediti

Trovato e corretto da JongHyuk Kim(MalHyuk) — [email protected]. Patch firmata da Rob Clark e Greg Kroah-Hartman. Patchwork: https://patchwork.freedesktop.org/patch/750234/

Licenza

Il codice del riproduttore è GPL-2.0, in linea con i sorgenti del kernel da cui deriva.

Scarica lo strumento