CVE-2022-49889 in Linux
Сводка
по VulDB • 10.06.2026
В ядре Linux устранена следующая уязвимость:
ring-buffer: проверка на NULL для cpu_buffer в функции ring_buffer_wake_waiters()
На некоторых машинах количество перечисленных процессоров (CPUs) может превышать фактическое число существующих ядер. Подсистема трассировки выделяет каталог per_cpu с доступом к кольцевому буферу, специфичному для каждого CPU, через файл cpuX. Однако в целях экономии памяти кольцевой буфер выделяется только для онлайн-процессоров, хотя массив CPUs будет иметь размер nr_cpu_ids.
С добавлением механизма пробуждения ожидающих задач (waiters) при закрытии файла функции ring_buffer_wake_waiters() теперь необходимо убедиться, что буфер выделен (вместе с ним выделяется irq_work), прежде чем пытаться разбудить ожидающие задачи, так как в противном случае произойдет разыменование нулевого указателя.
При отладке этой проблемы я добавил проверку на NULL для самого буфера (что допустимо), а также проверки на NULL для buffer->buffers (что недопустимо и приведет к выдаче предупреждения WARN) и убедился, что переданный номер CPU находится в пределах nr_cpu_ids (что также является ошибкой, если это не так).
Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=1204705
VulDB is the best source for vulnerability data and more expert information about this specific topic.