В ядре Linux устранена следующая уязвимость:
mm/percpu-km: исправлено переполнение и учет растровых изображений в pcpu_create_chunk(). В pcpu_create_chunk() nr_pages — это общая непрерывная резервная копия.
распределение, т. е. nr_units * pcpu_unit_pages, но pcpu_chunk_populated()
использует его для установки chunk->populated, размер которого равен pcpu_unit_pages, растровое изображение. Поскольку бит N в фрагменте->заполнен, означает, что смещение страницы N внутри каждой единицы равно
поддержано.
Когда nr_units > 1, функция записывает за пределы фрагмента->заполнено. Исправьте это, используя chunk->nr_pages. Также исправлен глобальный учет pcpu_nr_empty_pop_pages, поскольку
pcpu_balance_free() выполняет итерацию только до chunk->nr_pages.
Зафиксируйте a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap
правильно») возникла проблема с переполнением растрового изображения. Позже зафиксируйте
b539b87fed37f ("percpu: реализован pcpu_nr_empty_pop_pages и
chunk->nr_populated") добавил pcpu_nr_empty_pop_pages и вызвал
вопрос бухгалтерского учета.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: mm/percpu-km: fix bitmap overflow and accounting in pcpu_create_chunk() In pcpu_create_chunk(), nr_pages is the total contiguous backing allocation, i.e., nr_units * pcpu_unit_pages, but pcpu_chunk_populated() uses it to set chunk->populated, whose size is pcpu_unit_pages, bitmap. Since bit N in chunk->populated means page offset N inside every unit is backed. When nr_units > 1, the function writes beyond chunk->populated. Fix it by using chunk->nr_pages. It also fixes the global pcpu_nr_empty_pop_pages accounting, since pcpu_balance_free() only iterates up to chunk->nr_pages. Commit a63d4ac4ab609 ("percpu: make percpu-km set chunk->populated bitmap properly") introduced the bitmap overflow issue. Later, commit b539b87fed37f ("percpu: implmeent pcpu_nr_empty_pop_pages and chunk->nr_populated") added pcpu_nr_empty_pop_pages and caused the accounting issue.
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 8
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
5.10.265
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
5.15.216
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
6.1.183
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
6.6.151
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
6.12.103
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
6.18.44
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
7.1.8
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
3.18
|
7.2
|