В ядре Linux устранена следующая уязвимость:
mips: sched: исправление повреждения памяти CPUMASK_OFFSTACK. Этот патч устраняет критическую ошибку в управлении памятью. Когда
CONFIG_CPUMASK_OFFSTACK включен, cpumask_var_t — указатель.
Следовательно, sizeof(new_mask) оценивает размер указателя, вызывая
copy_from_user(), чтобы стереть указатель маски. Более того, старый
логика выполнила copy_from_user() перед выделением маски. Исправьте это, сначала выделив new_mask.
Для обработки пользователя переменного размера
маски правильно, используйте cpumask_size() для усечения слишком больших пользовательских масок.
или дополнить маски меньшего размера нулями перед копированием данных непосредственно в
выделенный буфер.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: mips: sched: Fix CPUMASK_OFFSTACK memory corruption This patch addresses a critical memory management flaw. When CONFIG_CPUMASK_OFFSTACK is enabled, cpumask_var_t is a pointer. Consequently, sizeof(new_mask) evaluates to the pointer size, causing copy_from_user() to clobber the mask pointer. Furthermore, the old logic performed copy_from_user() before allocating the mask. Fix this by allocating new_mask first. To handle variable-sized user masks correctly, use cpumask_size() to truncate overly large user masks or pad undersized masks with zeros before copying the data directly into the allocated buffer.
Характеристики атаки
Последствия
Строка CVSS v3.1