В ядре Linux устранена следующая уязвимость:
платформа/x86: ISST: проверка уровня в маске производительности ioctls
isst_if_get_perf_level_mask() и isst_if_get_base_freq_mask() используют
предоставленный пользователем уровень в качестве индекса в perf_levels[] через
_read_pp_level_info() и _read_bf_level_info(), но ни один из помощников
проверяет его в первую очередь. Соседние помощники level-info отклоняют уровни выше max_level перед
чтение одного и того же блока регистров каждого уровня. Добавьте те же проверки границ в
помощники маски и отклонить отключенные уровни SST-PP в
isst_if_get_perf_level_mask() для соответствия isst_if_get_perf_level_info().
Это предотвращает чтение за пределами границ таблицы смещений каждого уровня на
неверный ввод ioctl.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: platform/x86: ISST: Validate level in perf mask ioctls isst_if_get_perf_level_mask() and isst_if_get_base_freq_mask() use the user-provided level as an index into perf_levels[] via _read_pp_level_info() and _read_bf_level_info(), but neither helper validates it first. The adjacent level-info helpers reject levels above max_level before reading the same per-level register block. Add the same bounds checks to the mask helpers, and reject disabled SST-PP levels in isst_if_get_perf_level_mask() to match isst_if_get_perf_level_info(). This prevents out-of-bounds reads from the per-level offset table on invalid ioctl input.
Характеристики атаки
Последствия
Строка CVSS v3.1