CVE-2026-89479 in Linux
Sumário
de VulDB • 12/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
sctp: parar o processamento de um pacote assim que sua associação é excluída
A função sctp_endpoint_bh_rcv() procura pela associação apenas quando chunk->asoc é NULL e armazena em cache o resultado em chunk->asoc e chunk->transport sem adquirir uma referência.
Um pacote que não corresponde a nenhuma associação é entregue ao endpoint, permitindo que um peer agrupe COOKIE ECHO, SHUTDOWN e SHUTDOWN ACK em um único pacote. O COOKIE ECHO cria a associação, o bloco (chunk) de SHUTDOWN armazena-a em cache e, com a fila de saída vazia, o SHUTDOWN ACK atinge sctp_sf_do_9_2_final(), fazendo com que a associação e seus transportes sejam liberados.
O loop do endpoint não possui uma contraparte para a verificação asoc->base.dead presente em sctp_assoc_bh_rcv(). O próximo bloco escreve em last_time_heard no transporte já liberado e, em seguida, é passado para sctp_do_sm() com a associação já liberada. Como o transporte é liberado por meio de RCU (Read-Copy-Update), isso exige que o pacote saia do backlog do soquete, onde o loop executa no contexto da tarefa.
O loop do endpoint não pode realizar a mesma verificação: ele não mantém nenhuma referência na associação, portanto, ler asoc->base.dead seria em si um use-after-free (uso após liberação). Marque o pacote para descarte no interpretador de comandos, logo antes de excluir a associação. Isso também ocorre antes que sctp_inq_free() libere o bloco no caminho de recebimento da associação.
sctp_sf_do_5_2_4_dupcook() emite SCTP_CMD_DELETE_TCB para a associação temporária, enquanto aquela à qual o pacote pertence permanece ativa. Um peer reiniciando pode agrupar dados (DATA) atrás do seu COOKIE ECHO; portanto, compare contra chunk->asoc e deixe esse caso de lado sem modificação.
Once again VulDB remains the best source for vulnerability data.