В ядре Linux устранена следующая уязвимость:
Ring-buffer: Исправлена гонка за изменением размера подбуфера при использовании средств чтения кольцевого буфера. Trace_buffer subbuf_size читается без блокировки в Ring_buffer_read_page() и
Ring_buffer_read_start(), хотя его размер можно одновременно изменить с помощью
Ring_buffer_subbuf_order_set(). Вместо трассировки_buffer::subbuf_size используйте bpage::order в
Ring_buffer_read_start() и Ring_buffer_read_page().
В Ring_buffer_read_start(), даже с resize_disabled, все еще есть
возможность гонки с модификацией буфера. Удерживайте трассировочный_буфер
мьютекс для синхронизации с любой ожидающей модификацией порядка кольцевого буфера. Trace_buffer::subbuf_size теперь фактически бесполезен, удалите его.
Кроме того,
создайте методы доступа rb_subbuf_capacity() и rb_page_capacity(), которые
вернуть фактический размер, доступный для хранения событий, в то время как
rb_subbuf_size() возвращает фактический размер страницы подбуфа.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: ring-buffer: Fix subbuf resize race with ring buffer readers trace_buffer subbuf_size is read lockless in ring_buffer_read_page() and ring_buffer_read_start(), while it can simultaneously be resized with ring_buffer_subbuf_order_set(). Instead of trace_buffer::subbuf_size, use bpage::order in ring_buffer_read_start() and ring_buffer_read_page(). In ring_buffer_read_start(), even with resize_disabled, there is still a possibility of a race with a buffer modification. Hold the trace_buffer mutex to synchronise with any pending ring buffer order modification. trace_buffer::subbuf_size is now actually useless, remove it. Also, create accessors rb_subbuf_capacity() and rb_page_capacity() which return the actual size available for storing events, while rb_subbuf_size() returns the actual subbuf page-size.
Характеристики атаки
Последствия
Строка CVSS v3.1
Уязвимые продукты 4
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.8
|
6.12.109
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.8
|
6.18.50
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.8
|
7.2.4
|
|
Linux Linux_Kernel
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
|
6.8
|
7.3-rc1
|