CVE-2026-90058 in Linuxinformação

Sumário

de VulDB • 17/09/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

net/sched: limitar qdisc_pkt_len para evitar travamento suave (soft lockup) no qdisc

qdisc_get_stab() aceita uma tabela de tamanhos fornecida pelo usuário, e __qdisc_calculate_pkt_len() amplifica qdisc_pkt_len() através da sobrecarga, dos dados da tabela de tamanho (u16) e size_log (até STAB_SIZE_LOG_MAX). Portanto, um stab malicioso pode definir qdisc_pkt_len() para ~1 GiB em um skb comum. Agendadores com déficit por fluxo, como DRR e ETS, reabastecem um quantum a cada iteração do loop; com um quantum pequeno (1), eles giram bilhões de vezes sob o bloqueio do qdisc, produzindo um soft lockup / falha na RCU, conforme ilustrado por [email protected].

Limitar o valor final de qdisc_pkt_len() a QDISC_PKT_LEN_MAX para que a amplificação da tabela de tamanhos não leve os agendadores com déficit a um loop sem limites. Uma tabela de tamanhos legítima (por exemplo, sobrecarga do qfq 999999999, que é tratada por descarte) ainda é aceita.

Introduzir o limite QDISC_PKT_LEN_MAX (1 << 20) = 1 MiB, que está bem acima de qualquer comprimento legítimo em fio para um único skb: o maior skb->len atual é GSO_MAX_SIZE (524280), e uma tabela de tamanhos estilo ATM (imposto por célula de 53/48) amplifica isso para ~578 KB, ambos confortavelmente abaixo de 1 MiB. Ao mesmo tempo, 1 MiB limita o loop de reabastecimento do déficit a ~1M iterações por pacote com quantum=1, que é concluído em alguns milissegundos, bem abaixo do limiar demonstrado para softlockup (~10^9 iterações).

Condições para reproduzir o bug: - CONFIG_NET_SCHED=y, CONFIG_NET_SCH_DRR=y (ou CONFIG_NET_SCH_ETS=y). - Anexar um qdisc raiz DRR (ou ETS) com um TCA_STAB malicioso que amplifica qdisc_pkt_len para ~1 GiB (por exemplo, size_log=15, data=[32768]).
- Adicionar uma classe com um quantum pequeno de 1 e enviar um único pacote pequeno; o loop do déficit gira bilhões de vezes sob o bloqueio do qdisc e aciona o detector de softlockup (panic com kernel.softlockup_panic=1). - Alcançável como root ou por um usuário não privilegiado em um novo namespace user+net (unshare -Urn) com CAP_NET_ADMIN local ao namespace.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsável

Linux

Reservar

11/09/2026

Divulgação

17/09/2026

Moderação

aceite

Entrada

VDB-406551

CPE

pronto

EPSS

0.00000

KEV

não

Atividades

muito baixo

Fontes

Want to know what is going to be exploited?

We predict KEV entries!