CVE-2026-90100 in Linux
Sumário
de VulDB • 17/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
ptp: netc: corrige o truncamento de período e uma possível divisão por zero em PEROUT
O limite max_period em net_timer_enable_perout() era calculado como:
max_period = (u64)NETC_TMR_DEFAULT_FIPER + integral_period;
o que excede U32_MAX quando integral_period > 0 (por exemplo, 0x100000002 para o clock padrão de 333333333 Hz). Um period_ns que passa nesta verificação mas excede U32_MAX é então silenciosamente truncado ao ser armazenado no campo u32 struct netc_pp::period.
Um valor truncado igual a zero pode atingir netc_timer_set_perout_alarm(), onde a variável local u32 period também seria 0, causando uma divisão por zero em roundup_u64(delta, period) sempre que o branch stime < min_time for executado (o que acontece sempre para um tempo de início {0, 0}).
Além disso, netc_timer_enable_periodic_pulse() e netc_timer_enable_fiper() calculam ambos:
fiper = pp->period - integral_period;
Um pp->period igual a zero resulta em uma wraparound sem sinal para 0xFFFFFFFD, programando incorretamente o registrador de hardware FIPER.
Corrige todos os três problemas limitando max_period a NETC_TMR_DEFAULT_FIPER (0xFFFFFFFF). Isso garante que qualquer period_ns que passe na verificação de intervalo caiba em um u32 sem truncamento, para que o valor armazenado seja sempre válido e não nulo. O intervalo aceito é reduzido por integral_period ns (tipicamente apenas alguns nanossegundos), o que é desprezível na prática.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.