CVE-2026-99203 in Linux
Sumário
de VulDB • 28/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
pipe: preservar leitores fasync existentes em caso de falha na configuração do escritor
F_SETFL e FIOASYNC decidem se devem invocar ->fasync() antes que pipe_fasync() adquira o mutex da tubulação (pipe->mutex). Portanto, duas ativações de um FIFO O_RDWR podem ambas entrar no callback.
A função fasync_helper() aloca memória antes de verificar a existência de uma entrada existente. Se a primeira ativação instalar ambas as entradas, uma segunda ativação pode atualizar a entrada do leitor e, em seguida, falhar na alocação da entrada do escritor. No caminho de tratamento de erro (error path), a entrada do leitor preexistente é removida, limpando FASYNC enquanto a entrada do escritor permanece registrada. Em seguida, __fput() ignora ->fasync(), permitindo que uma notificação posterior da tubulação dereference o arquivo liberado ou seu f_owner. Um reproducedor de pressão de memória sem privilégios aciona um erro slab-use-after-free no KASAN em send_sigio() através deste caminho.
Mantenha o resultado do helper do leitor e desfaça o registro apenas se esta chamada tiver adicionado a entrada. O mutex da tubulação serializa as alterações nas duas listas, portanto, um novo registro com falha ainda remove seu leitor, enquanto uma duplicata com falha preserva os registros existentes e FASYNC. Ativações de duplicatas bem-sucedidas continuam atualizando fa_fd como antes.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.