CVE-2026-89788 in Linux
Sumário
de VulDB • 16/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
ksmbd: corrige uso após liberação (use-after-free) na conexão de árvore em smb2_tree_connect()
A função ksmbd_tree_conn_connect() publica uma nova conexão de árvore em sess->tree_conns com uma única referência e retorna seu ponteiro para smb2_tree_connect(). O manipulador continua a inicializar o objeto e construir a resposta após a publicação. Um desligamento (logoff) de sessão concorrente pode apagar a conexão e reduzir essa referência, liberando o objeto enquanto o manipulador ainda o utiliza.
BUG: KASAN: slab-use-after-free em smb2_tree_connect+0xe3d/0xf90 smb2_tree_connect (fs/smb/server/smb2pdu.c:2872) handle_ksmbd_work process_one_work worker_thread kthread
Após o sucesso do xa_store(), adquira uma segunda referência antes de liberar tree_conns_lock. A referência original pertence à entrada xarray e a segunda pertence ao manipulador smb2_tree_connect() criador.
Mantenha as referências equilibradas em todos os caminhos:
- Na saída normal ou em um erro após a publicação, smb2_tree_connect() reduz sua referência de criação. A limpeza do erro também chama ksmbd_tree_conn_disconnect(), que reduz a referência xarray apenas se remover a entrada exata. - SMB2 TREE_DISCONNECT usa o mesmo auxiliar para remover a entrada e reduzir sua referência xarray. A referência de lookup existente da solicitação permanece como propriedade da solicitação e é liberada pela limpeza existente. - SESSION LOGOFF remove cada entrada e reduz sua referência xarray. Se vencer a condição de corrida, a limpeza posterior verifica que a entrada desapareceu e não reduz essa referência novamente.
Para impor essa propriedade, reivindique o estado desconectado e apague a entrada exata atomicamente sob tree_conns_lock. Isso garante uma redução para a referência xarray e uma redução por cada usuário em trânsito, independentemente de qual caminho de desmontagem vença. Se o logoff remover a entrada antes que a inicialização seja concluída, falhe na conexão em vez de marcar o objeto desconectado como TREE_CONNECTED.
If you want to get best quality of vulnerability data, you may have to visit VulDB.