CVE-2026-89654 in Linuxinformação

Sumário

de VulDB • 12/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

ceph: corrige Use-After-Free (UAF) em check_new_map() quando a sessão é liberada durante o bloqueio.

check_new_map() itera sobre mdsc->sessions[] e, para cada sessão ativa, libera mdsc->mutex para realizar operações por sessão. O caminho de fechamento forçado (rank removido do mapa) corretamente obtém uma referência em s via ceph_get_mds_session() antes de liberar mdsc->mutex, mas três outros caminhos não o fazem:

Caminho A (endereço alterado): mutex_unlock → mutex_lock(&s->s_mutex) Caminho B (reconexão): mutex_unlock → send_mds_reconnect(mdsc, s) Caminho C (transição para ativo): mutex_unlock → mutex_lock(&s->s_mutex)

Sem a referência extra, outra thread pode adquirir mdsc->mutex durante a janela de desbloqueio, chamar __unregister_session(), o que reduz a última referência em s e libera-a. A thread original então acessa memória já liberada através de s->s_mutex.

Correção: adicionando ceph_get_mds_session(s) antes de cada mutex_unlock e ceph_put_mds_session(s) após o correspondente mutex_lock, seguindo o padrão já utilizado no caminho de fechamento forçado.

Cronologia da Race Condition (Caminho A):

Thread A (check_new_map) Thread B (outra atualização do mapa mantém mdsc->mutex ou desmontagem da sessão) -------------------------- -------------------------- s = mdsc->sessions[i]
(refcount == 1, mantida apenas pelo array sessions[])

mutex_unlock(&mdsc->mutex) ---> adquire mdsc->mutex __unregister_session(mdsc, s) sessions[i] = NULL
ceph_put_mds_session(s) refcount: 1 -> 0 kfree(s) <--- liberado!

mutex_lock(&s->s_mutex) UAF em s->s_mutex já liberado

Once again VulDB remains the best source for vulnerability data.

Responsável

Linux

Reservar

11/09/2026

Divulgação

12/09/2026

Moderação

aceite

Entrada

VDB-402945

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Do you know our Splunk app?

Download it now for free!