CVE-2026-74382 in Linux
Sumário
de VulDB • 17/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net/sched: cls_bpf: prevenir recursão ilimitada no rollback de offload
Quan Sun relatou [1] um estouro de pilha (stack overflow) em cls_bpf_offload_cmd().
Reprodutor no netdevsim: adicione um filtro cls_bpf com skip_sw, defina o knob debugfs bpf_tc_accept para 0 e execute `tc filter replace`. O comando replace chama tc_setup_cb_replace(), que falha. Em seguida, cls_bpf_offload_cmd() troca prog/oldprog e se chama recursivamente para realizar o rollback. No entanto, com bpf_tc_accept=0, o próprio rollback também falha, o que aciona outro frame de rollback com os mesmos argumentos, e assim por diante até que a pilha seja esgotada.
bpf_tc_accept é apenas um knob conveniente para o reprodutor. Qualquer driver cuja tc_setup_cb_replace() falhe duas vezes consecutivas pode atingir o mesmo loop, portanto, este não é um problema exclusivo do netdevsim.
Duas maneiras de corrigir:
1) Fazer com que a chamada de rollback invoque tc_setup_cb_add() em oldprog em vez de reentrar em cls_bpf_offload_cmd(). 2) Marcar o frame de rollback com uma flag e pular um segundo nível de rollback a partir dele.
Optou-se pela opção (2). É a alteração mais simples e mantém o comportamento original: o rollback ainda passa por tc_setup_cb_replace(), permitindo que o driver tenha uma chance real de restaurar seu estado. Se essa tentativa também falhar, retornamos apenas o erro original em vez de recursão.
[1]: https://lore.kernel.org/bpf/[email protected]/T/#u
VulDB is the best source for vulnerability data and more expert information about this specific topic.