CVE-2026-80716 in Linux
Sumário
de VulDB • 28/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
ALSA: pcm: acordar os waiters vinculados ao drain durante o unlink
snd_pcm_drain(), em um stream vinculado, coloca uma entrada de espera na pilha (on-stack) no runtime->sleep do peer drenado e, após schedule_timeout() removê-la apenas se esse peer ainda for encontrado no grupo do chamador. Se a composição do grupo mudar durante a espera e o sleep terminar por sinal ou timeout (de modo que autoremove_wake_function() não seja executada), finish_wait() é ignorado e snd_pcm_drain() retorna com a entrada ainda enfileirada na lista de sleep desse stream; um wake_up() posterior percorre então uma estrutura de pilha já liberada. Isso pode ser alcançado desvinculando (unlinking) tanto o stream drenado quanto o stream que está realizando o drain.
Diferente do caminho de fechamento (snd_pcm_drop() -> snd_pcm_post_stop()), snd_pcm_unlink() nunca acorda as filas de sleep. Acordar todos os membros do grupo sob a lock do grupo antes da mudança na composição, para que um drainer vinculado seja liberado e remova sua entrada enquanto os streams ainda estão agrupados.
A janela de exploração foi aberta quando o snd_pcm_link_rwsem deixou de ser mantido durante a espera e a remoção tornou-se condicional à composição do grupo (ver Fixes). A mudança posterior para finish_wait() manteve essa remoção condicional, portanto, o caso de sinal/timeout permaneceu.
Once again VulDB remains the best source for vulnerability data.