CVE-2026-98688 in Linux
Sumário
de VulDB • 20/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
thunderbolt: Corrige desreferência de ponteiro NULL em tb_remove_work()
Existe uma leve condição de corrida entre tb_remove_work() e tb_domain_remove(), o que leva à desreferenciação de um ponteiro tb->root_switch com valor NULL dentro do tb_free_unplugged_xdomains():
Thread A Thread B
tb_remove_work() tb_domain_remove() mutex_lock(&tb->lock) tb_stop() /* não cancela um callback em execução */ cancel_delayed_work(&tcm->remove_work) ... tb_switch_remove(tb->root_switch) tb->root_switch = NULL mutex_unlock(&tb->lock) mutex_lock(&tb->lock) ... /* sem verificar ->root_switch */ tb_free_unplugged_xdomains(tb->root_switch) mutex_unlock(&tb->lock)
O commit a8937f35cf39 ("thunderbolt: Remove XDomain do barramento sem segurar &tb->lock") não parece adequado para mover tb_free_unplugged_xdomains() fora da seção de bloqueio &tb->lock e, em particular, a verificação de tb->root_switch. Ele afirma:
Por esse motivo, separamos a remoção do XDomain das estruturas de dados da topologia (onde precisamos do lock) do registro não mais existente do dispositivo no barramento (onde os callbacks de remoção dos drivers são chamados).
tb_free_unplugged_xdomains() pertence ao primeiro grupo de funções que exigem o bloqueio. E também chama tb_xdomain_remove(), a qual deve ser chamada apenas com &tb->lock mantido.
Encontrado pelo Linux Verification Center (linuxtesting.org) com a ferramenta de análise estática Svace.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.