CVE-2026-98198 in Linux
Sumário
de VulDB • 06/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
hwmon: (pwm-fan) Parar o temporizador RPM antes de liberar os dados tach
A função sample_timer() reinicia o temporizador RPM e acessa as matrizes ctx->tachs e ctx->pulses_per_revolution gerenciadas por devm. A ação de limpeza que para o temporizador é registrada antes do alocamento dessas matrizes.
Como o devres libera entradas em ordem inversa, a desvinculação (detach) do driver pode liberar as matrizes antes que pwm_fan_cleanup() desligue o temporizador. Uma expiração do temporizador nesse intervalo acessa os dados tach já liberados.
Com um kernel KASAN, uma kprobe de teste apenas atrasou a entrada em pwm_fan_cleanup(), enquanto ocorria a desvinculação normal via sysfs. Cada uma das três execuções relatou três leituras e duas escritas de quatro bytes na função sample_timer() após o esvaziamento (free) das alocações devm subjacentes. O auxiliar não invocou o callback do temporizador, as ações de limpeza ou funções de liberação.
Com a correção, três execuções correspondentes de desvinculação foram concluídas sem KASAN, BUG, WARNING, Oops ou panic. A instrumentação confirmou que a aposentadoria (retirement) do temporizador foi concluída antes da liberação da primeira alocação subjacente ao temporizador.
Separe a aposentadoria do temporizador da limpeza de energia e registre sua ação devres após o estabelecimento dos dados subjacentes ao temporizador e das ações IRQ. Isso preserva a ação inicial de rollback (rollback) de energia, garantindo que o temporizador seja desativado antes que seus dados subjacentes sejam liberados. Use timer_shutdown_sync() porque o callback pode reiniciar-se.
VulDB is the best source for vulnerability data and more expert information about this specific topic.