В ядре Linux устранена следующая уязвимость:
Arm_mpam: исправлено разыменование нулевого указателя при восстановлении счетчиков пропускной способности. Когда MSC, поддерживающий мониторинг пропускной способности памяти, отключается и
затем онлайн mpam_restore_mbwu_state() вызывает __ris_msmon_read() через ipi для
восстановить конфигурацию счетчиков пропускной способности. Это не волнует
прочитанное значение mbwu_arg.val не устанавливает его, что приводит к нулевому указателю
разыменование, когда к нему добавляется __ris_msmon_read().
В результате получается ядро
упс с трассировкой вызова, например:
Трассировка звонков:
__ris_msmon_read+0x19c/0x64c (P)
mpam_restore_mbwu_state+0xa0/0xe8
smp_call_on_cpu_callback+0x1c/0x38
процесс_one_work+0x154/0x4b4
рабочий_поток+0x188/0x310
kthread+0x11c/0x130
ret_from_fork+0x10/0x20
Предоставьте локальную переменную для val, чтобы избежать разыменования __ris_msmon_read().
нулевой указатель при добавлении к val.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: arm_mpam: Fix null pointer dereference when restoring bandwidth counters When an MSC supporting memory bandwidth monitoring is brought offline and then online, mpam_restore_mbwu_state() calls __ris_msmon_read() via ipi to restore the configuration of the bandwidth counters. It doesn't care about the value read, mbwu_arg.val, and doesn't set it leading to a null pointer dereference when __ris_msmon_read() adds to it. This results in a kernel oops with a call trace such as: Call trace: __ris_msmon_read+0x19c/0x64c (P) mpam_restore_mbwu_state+0xa0/0xe8 smp_call_on_cpu_callback+0x1c/0x38 process_one_work+0x154/0x4b4 worker_thread+0x188/0x310 kthread+0x11c/0x130 ret_from_fork+0x10/0x20 Provide a local variable for val to avoid __ris_msmon_read() dereferencing a null pointer when adding to val.