Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-98180 — Prueba de concepto y reproductor KUnit confirmado por KASAN para CVE-2026-98180, un use-after-free en drm/msm de objetos ring y VM que contienen el planificador, accesibles mediante SYNC_IOC_FILE_INFO sin privilegios. | Kitploit
Herramientas/GitHubGitHub/malhyuk/cve-2026-98180
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónFuzzingPapers e InvestigaciónAprendizaje y Educación
GitHubmalhyuk/cve-2026-98180

CVE-2026-98180

Prueba de concepto y reproductor KUnit confirmado por KASAN para CVE-2026-98180, un use-after-free en drm/msm de objetos ring y VM que contienen el planificador, accesibles mediante SYNC_IOC_FILE_INFO sin privilegios.

Ver Repositorio
hace 19 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-98180 — drm/msm: use-after-free de los objetos ring/VM que contienen el scheduler

Un drm_sched_fence exportado al espacio de usuario mantiene un puntero sin procesar al drm_gpu_scheduler que lo produjo. En drm/msm ese scheduler está embebido en struct msm_ringbuffer y struct msm_gem_vm, ambos liberados con un simple kfree(). Por lo tanto, un fence finalizado retenido por el espacio de usuario sobrevive a su scheduler, y un SYNC_IOC_FILE_INFO posterior — un ioctl sin privilegios — hace que drm_sched_fence_get_timeline_name() desreferencie memoria slab liberada.

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

Causa raíz

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

Las ops del scheduler fence mantienen un callback .release, por lo que el fence no se desvincula de las ops cuando señala. Un fence señalado exportado vía sync_file o drm_syncobj sigue apuntando al scheduler embebido después de que el ring o la VM se liberan. Según el contrato de vida útil de dma-fence, el exportador debe mantener vivos los datos que respaldan un fence señalado durante un período de gracia RCU; drm/msm no lo hacía.

Corrección01c8d1f385f7 — drm/msm: RCU-free the scheduler-containing ring and VM objects
Introducido por1d8a5ca436ee (drm/msm: Conversion to drm scheduler), 92395af63a99 (drm/msm: Add VM_BIND submitqueue)
Retroportado6.18-stable, 7.2-stable (Greg Kroah-Hartman, 2026-09-22)
Alcanzabilidadsin privilegios — SYNC_IOC_FILE_INFO sobre un fd de fence
Impactolectura UAF de slab liberado (fuga de información / lectura arbitraria del puntero de nombre del objeto liberado)

La corrección reemplaza kfree() por kfree_rcu() para ambos objetos contenedores:

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

Reproducción

El error está en el manejo genérico de la vida útil de drm/sched, por lo que se reproduce sin hardware Adreno usando un scheduler simulado de KUnit. Esa es la evidencia en evidence/kasan-report.txt.

cd poc && ./run-repro.sh            # aplica 0001-…patch, compila KUnit + KASAN, ejecuta
  • poc/0001-drm-sched-kunit-uaf-repro.patch — reproductor KUnit independiente del hardware (confirmado por KASAN)
  • poc/poc_userspace_drm_sched_uaf.c — la secuencia de ioctl sin privilegios desde el espacio de usuario sobre un driver afectado
  • poc/kunitconfig, poc/run-repro.sh — arnés de compilación/ejecución
  • evidence/kasan-report.txt — el informe KASAN de slab-use-after-free

poc_userspace_drm_sched_uaf.c está escrito contra AMD XDNA como ejemplo práctico porque ese dispositivo estaba disponible; la misma forma se aplica a msm (MSM_SUBMITQUEUE / VM_BIND exportan un fence finalizado mediante sync_file_create() + fd_install()) y a nouveau.

Relacionado

La misma clase de vida útil de dma-fence también se corrigió en el núcleo: 3ed11c671ff7 — dma-buf/dma-fence: fix checking signaling bit for timeline and driver name v3 (autor: Christian König; reportado y probado por el autor de este repositorio).

Créditos

Encontrado y corregido por JongHyuk Kim(MalHyuk) — [email protected]. Parche firmado por Rob Clark y Greg Kroah-Hartman. Patchwork: https://patchwork.freedesktop.org/patch/750234/

Licencia

El código del reproductor es GPL-2.0, en concordancia con las fuentes del kernel de las que deriva.

Descargar herramienta