Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-98180 — Prova de conceito e reprodutor KUnit confirmado por KASAN para CVE-2026-98180, um use-after-free em drm/msm de objetos ring e VM contendo o scheduler, alcançáveis via SYNC_IOC_FILE_INFO sem privilégios. | Kitploit
Ferramentas/GitHubGitHub/malhyuk/cve-2026-98180
Forensia de MemóriaAnálise de VulnerabilidadesExploraçãoFuzzingPapers e PesquisaAprendizado e Educação
GitHubmalhyuk/cve-2026-98180

CVE-2026-98180

Prova de conceito e reprodutor KUnit confirmado por KASAN para CVE-2026-98180, um use-after-free em drm/msm de objetos ring e VM contendo o scheduler, alcançáveis via SYNC_IOC_FILE_INFO sem privilégios.

Ver Repositório
há 18 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-98180 — drm/msm: use-after-free dos objetos ring/VM que contêm o scheduler

Um drm_sched_fence exportado para o espaço do usuário mantém um ponteiro bruto para o drm_gpu_scheduler que o produziu. No drm/msm esse scheduler está embutido em struct msm_ringbuffer e struct msm_gem_vm, ambos liberados com um simples kfree(). Um fence finalizado mantido pelo espaço do usuário, portanto, sobrevive ao seu scheduler, e um SYNC_IOC_FILE_INFO posterior — um ioctl não privilegiado — faz drm_sched_fence_get_timeline_name() desreferenciar memória slab liberada.

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

Causa raiz

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

As ops do scheduler fence mantêm um callback .release, então o fence não é desanexado das ops quando sinaliza. Um fence sinalizado exportado via sync_file ou drm_syncobj continua apontando para o scheduler embutido depois que o ring ou a VM é liberado. Segundo o contrato de tempo de vida do dma-fence, o exportador deve manter os dados que sustentam um fence sinalizado vivos por um período de carência RCU; o drm/msm não o fez.

Correção01c8d1f385f7 — drm/msm: RCU-free the scheduler-containing ring and VM objects
Introduzido por1d8a5ca436ee (drm/msm: Conversion to drm scheduler), 92395af63a99 (drm/msm: Add VM_BIND submitqueue)
Backportado6.18-stable, 7.2-stable (Greg Kroah-Hartman, 2026-09-22)
Alcançabilidadenão privilegiado — SYNC_IOC_FILE_INFO em um fd de fence
Impactoleitura UAF de slab liberado (vazamento de informação / leitura arbitrária do ponteiro de nome do objeto liberado)

A correção substitui kfree() por kfree_rcu() para ambos os objetos contêineres:

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

Reprodução

O bug está no tratamento genérico de tempo de vida do drm/sched, então ele se reproduz sem hardware Adreno usando um scheduler mock de KUnit. Essa é a evidência em evidence/kasan-report.txt.

cd poc && ./run-repro.sh            # applies 0001-…patch, builds KUnit + KASAN, runs
  • poc/0001-drm-sched-kunit-uaf-repro.patch — reprodutor KUnit independente de hardware (confirmado por KASAN)
  • poc/poc_userspace_drm_sched_uaf.c — a sequência de ioctl não privilegiada do espaço do usuário em um driver afetado
  • poc/kunitconfig, poc/run-repro.sh — harness de build/execução
  • evidence/kasan-report.txt — o relatório KASAN de slab-use-after-free

poc_userspace_drm_sched_uaf.c foi escrito tendo o AMD XDNA como exemplo prático porque esse dispositivo estava disponível; a mesma forma se aplica ao msm (MSM_SUBMITQUEUE / VM_BIND exportam um fence finalizado através de sync_file_create() + fd_install()) e ao nouveau.

Relacionado

A mesma classe de tempo de vida do dma-fence também foi corrigida no núcleo: 3ed11c671ff7 — dma-buf/dma-fence: fix checking signaling bit for timeline and driver name v3 (escrito por Christian König; reportado e testado pelo autor deste repositório).

Créditos

Encontrado e corrigido por JongHyuk Kim(MalHyuk) — [email protected]. Patch assinado por Rob Clark e Greg Kroah-Hartman. Patchwork: https://patchwork.freedesktop.org/patch/750234/

Licença

O código do reprodutor é GPL-2.0, em conformidade com os fontes do kernel dos quais deriva.

Baixar ferramenta