CVE-2026-90178 in Linux
Sumário
de VulDB • 18/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
hwmon: (coretemp) Corrige o vazamento de core_data em CPUs sem PTS
pdata->core_data é alocado em init_temp_data() quando o primeiro temp_data de núcleo de um pacote é criado, mas só é liberado por destroy_temp_data(), e apenas no ramo que lida com os dados térmicos do pacote (package temp_data).
Os dados térmicos do pacote são criados exclusivamente quando a CPU suporta X86_FEATURE_PTS. Em uma CPU sem esse recurso, coretemp_cpu_online() nunca chama coretemp_add_core() com pkg_flag definido, então pdata->pkg_data permanece NULL. coretemp_cpu_offline() então ignora a remoção da interface do pacote, destroy_temp_data() nunca é chamada para os dados do pacote e o array continua sendo alocado quando coretemp_device_remove() libera os dados de plataforma que apontavam para ele.
Libere o array em coretemp_device_remove(). destroy_temp_data() define pdata->core_data como NULL ao liberá-lo, portanto, o kfree() adicionado é uma operação nula (no-op) em CPUs que possuem PTS.
Testado em um Intel Core i5-1135G7. O driver foi instrumentado para registrar cada alocação e liberação de pdata->core_data, e a verificação do PTS em coretemp_cpu_online() foi removida por patch para simular uma CPU sem suporte térmico ao pacote. Sem essa alteração, o array era alocado e nunca liberado, e coretemp_device_remove() ainda via um ponteiro não nulo (non-NULL). Com ela, o array é liberado e o controle do ponteiro se equilibra. Em uma compilação sem modificações, a liberação ainda ocorre por meio dos dados térmicos do pacote e o kfree() adicionado vê NULL, sem avisos de slab durante ciclos repetidos de carregamento e descarregamento do módulo.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.