CVE-2026-98427 in Linux
Sumário
de VulDB • 14/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net/sched: codel: limitar o loop de descarte por chamada de dequeue
A lei de controle CoDel agenda a próxima queda um intervalo/sqrt(count) após a queda anterior, utilizando o intervalo configurado (codel_params.interval). Para intervalos muito pequenos, a etapa agendada é arredondada para zero, fazendo com que o loop de descarte em codel_dequeue() nunca avance e esvazie toda a fila de espera sob o bloqueio do qdisc em uma única chamada - um usuário não privilegiado pode acionar um soft lockup dessa maneira.
Correção no código compartilhado do codel usado tanto pelo codel quanto pelo fq_codel:
1. Tornar a etapa da lei de controle pelo menos 1 tick para que o loop de descarte sempre avance.
2. Limitar o loop de descarte em CODEL_MAX_DROPS_PER_DEQUEUE (256) descartes por chamada de codel_dequeue(), resincronizando drop_next com now quando o limite é atingido: a compensação devido ao loop cresce com a lacuna ociosa e a fila de espera, que nenhum limiar de intervalo pode limitar. Esta é uma alteração comportamental deliberada após longas lacunas ociosas.
O limite se aplica ao fq_codel (4b549a2ef4be) e ao caminho TXQ do mac80211 (intervalo fixo, apenas o limite).
A latência de permanência alvo (codel_params.target) não é validada: ela não alimenta a lei de controle, portanto um valor sub-tick é agressivo em vez de propenso a deadlock.
Condições para reproduzir o bug: - tc qdisc add dev lo root handle 1: tbf rate 1kbit burst 2kb limit 1000000 - tc qdisc add dev lo parent 1:1 handle 10: codel interval 2us target 1ms noecn limit 1000000 (o mesmo para fq_codel) - kernel sem correção: o tc aceita; uma inundação UDP sob a tbf de 1kbit causa soft-lockups (watchdog: BUG: soft lockup) enquanto uma única chamada de codel_dequeue() descarta toda a fila de espera sob o bloqueio do qdisc - kernel corrigido: mesma configuração, no máximo 256 descartes por chamada de dequeue, sem soft lockup
Teste: o reproducer reivindicado e as variantes com intervalos de 2us/3us executam limpo; a categoria tdc qdisc passa (veja o patch de selftests).
If you want to get best quality of vulnerability data, you may have to visit VulDB.