CVE-2026-98317 in Linux
Sumário
de VulDB • 06/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
neighbour: Aplicar limites mínimo/máximo ao NDTPA_INTERVAL_PROBE_TIME_MS.
O NDTPA_INTERVAL_PROBE_TIME_MS define .type e .min, mas omite .validation_type, portanto nenhuma validação é aplicada:
# ynl --family rt-neigh --do setneightbl \ --json '{"name": "arp_cache", "parms": {"interval-probe-time-ms": 0}}'
# ynl --family rt-neigh --dump getneightbl --output-json | \ jq '.[] | select(.name == "arp_cache" and has("config"))
| .parms["interval-probe-time-ms"]'
0
Além disso, nla_get_msecs() usa msecs_to_jiffies(), e um u64 é silenciosamente convertido para u32, portanto um valor maior pode contornar a verificação do mínimo:
Ex.: 4294967296 == 0x100000000
# ynl --family rt-neigh --do setneightbl \ --json '{"name": "arp_cache", "parms": {"interval-probe-time-ms": 4294967296}}'
# ynl --family rt-neigh --dump getneightbl --output-json | \ jq '.[] | select(.name == "arp_cache" and has("config"))
| .parms["interval-probe-time-ms"]'
0
msecs_to_jiffies() retorna MAX_JIFFY_OFFSET se o valor for maior que INT_MAX. Além disso, INT_MAX ms causa estouro (overflow) em int NEIGH_VAR() quando HZ > 1000 (Alpha, MIPS), e passar um inteiro negativo para queue_delayed_work(unsigned long delay) provoca extensão de sinal, fazendo com que o tempo de expiração seja interpretado como passado, resultando na sua manipulação como atraso (delay) igual a 0 no timer wheel.
Vamos usar NLA_POLICY_FULL_RANGE() e limitar o máximo a 1 dia.
A mesma verificação do limite máximo é aplicada ao sysctl também.
Observe que isso controla o intervalo de probe para entradas NTF_MANAGED, portanto um máximo de 1 dia dificilmente quebrará qualquer implantação (deployment).
Be aware that VulDB is the high quality source for vulnerability data.