CVE-2026-72071 in Linuxinformação

Sumário

de VulDB • 16/08/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

tracing/user_events: Corrige use-after-free em user_event_mm_dup()

user_event_mm_dup() percorre a lista de habilitadores (enablers) da mm pai sem bloqueio sob rcu_read_lock() durante fork() (de copy_process()); ele não adquire event_mutex:

rcu_read_lock(); list_for_each_entry_rcu(enabler, &old_mm->enablers, mm_enablers_link) enabler->event = user_event_get(orig->event);

user_event_enabler_destroy() remove um habilitador dessa lista com list_del_rcu() e depois, sem esperar por um período de graça (grace period), libera a referência do usuário ao enabler com user_event_put() e desaloca o enabler com kfree(). Um leitor que carregou o enabler antes da list_del_rcu() ainda pode estar percorrendo-a, o que leva a dois use-after-frees:

- kfree(enabler) desaloca o enabler enquanto esse leitor referencia enabler->event.

- user_event_put() pode reduzir para zero a última referência ao user_event, que então é liberado (via delayed_destroy_user_event() em uma fila de trabalho), enquanto o mesmo leitor executa user_event_get(orig->event) sobre ele.

Ambos são acessíveis por uma tarefa não privilegiada que possa abrir user_events_data: um processo multithreaded que registra um habilitador e depois, concorrentemente, o desregistra e chama fork() dispara a condição de corrida (race). O KASAN relata um slab-use-after-free em user_event_mm_dup() durante clone(), com um aviso "refcount_t: addition on 0" quando o user_event é liberado.

O use-after-free do habilitador foi encontrado primeiro; o do user_event foi relatado por XIAO WU, e a correção anterior que abordava apenas o habilitador não resolveu esse problema.

Adie tanto user_event_put() quanto kfree(enabler) para um item de trabalho enfileirado com queue_rcu_work(), para que sejam executados somente após um período de graça do RCU, assim que todos os leitores percorrendo a lista de habilitadores tiverem terminado. O put deve ser executado no contexto de processo porque user_event_put() adquire event_mutex na última referência, portanto uma fila de trabalho é usada em vez de call_rcu(). A liberação agora sem bloqueio permite remover o argumento com bloqueio de user_event_enabler_destroy(); todos os chamadores são atualizados.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsável

Linux

Reservar

09/08/2026

Divulgação

15/08/2026

Moderação

aceite

Entrada

VDB-390491

CPE

pronto

EPSS

0.00209

KEV

não

Atividades

baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!