CVE-2026-23332

NONE EPSS 0.02%
Обновлено 25 марта 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: cpufreq: intel_pstate: исправлен сбой во время отключения турбо. Когда система загружается с аргументом командной строки ядра «nosmt» или «maxcpus», чтобы ограничить количество процессоров, отключив турбо через: echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo приводит к сбою: PF: доступ супервизора на чтение в режиме ядра PF: error_code(0x0000) — страница отсутствует ПГД 0 П4Д 0 К сожалению: К сожалению: 0000 [#1] SMP PTI ... RIP: 0010:store_no_turbo+0x100/0x1f0 ...

Это происходит потому, что for_each_possible_cpu() возвращает значения процессоров, даже если они не онлайн. Для этих процессоров all_cpu_data[] будет иметь значение NULL. Поскольку commit 973207ae3d7c ("cpufreq: intel_pstate: Изменить максимальную частоту код обработки обновлений"), all_cpu_data[] разыменовывается даже для процессоров которые не находятся в сети, что приводит к разыменованию NULL-указателя.

Чтобы это исправить, передайте номер ЦП в intel_pstate_update_max_freq() и используйте all_cpu_data[] для тех процессоров, для которых существует действующая политика cpufreq.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: cpufreq: intel_pstate: Fix crash during turbo disable When the system is booted with kernel command line argument "nosmt" or "maxcpus" to limit the number of CPUs, disabling turbo via: echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo results in a crash: PF: supervisor read access in kernel mode PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP PTI ... RIP: 0010:store_no_turbo+0x100/0x1f0 ... This occurs because for_each_possible_cpu() returns CPUs even if they are not online. For those CPUs, all_cpu_data[] will be NULL. Since commit 973207ae3d7c ("cpufreq: intel_pstate: Rearrange max frequency updates handling code"), all_cpu_data[] is dereferenced even for CPUs which are not online, causing the NULL pointer dereference. To fix that, pass CPU number to intel_pstate_update_max_freq() and use all_cpu_data[] for those CPUs for which there is a valid cpufreq policy.