Ad

CVE-2026-74365

HIGH CVSS 3.1: 7,3 EPSS 0.13%
Обновлено 17 августа 2026
Linux
Параметр Значение
CVSS 7,3 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: nvdimm/btt: обработка приоритета при получении полосы BTT. Линии BTT сериализуют доступ к метаданным каждой линии и состоянию рабочей области. во время ввода-вывода BTT. Модульный тест btt-check сообщает о несоответствии данных во время BTT пишет из-за гонки в захвате полосы движения, которая может привести к молчанию повреждение данных.

Существующая модель дорожек использует спин-блокировку вместе с попроцессорной счет рекурсии. Эта рекурсивная модель перестала быть действительной после BTT. полосы стали вытесняемыми: на том же процессоре может выполняться другая задача, наблюдайте за ненулевым количеством рекурсий, обходите блокировки и используйте тот же полоса одновременно. Дорожки BTT также удерживаются при вызовах arena_write_bytes().

Этот путь достигает nsio_rw_bytes(), который сбрасывает записи с помощью nvdimm_flush(). Некоторые обратные вызовы очистки провайдера могут спать, что делает спин-блокировку неправильной. примитивный для времени жизни полосы. Замените модель рекурсии, основанную на спин-блокировках, на динамическую. выделенный массив мьютексов для каждой полосы и блокировка полосы безоговорочно.

Добавьте may_sleep(), чтобы перехватывать любые будущие вызовы атомарного контекста. Найден с помощью модульного теста ndctl btt-check.sh.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: nvdimm/btt: Handle preemption in BTT lane acquisition BTT lanes serialize access to per-lane metadata and workspace state during BTT I/O. The btt-check unit test reports data mismatches during BTT writes due to a race in lane acquisition that can lead to silent data corruption. The existing lane model uses a spinlock together with a per-CPU recursion count. That recursion model stopped being valid after BTT lanes became preemptible: another task can run on the same CPU, observe a non-zero recursion count, bypass locking, and use the same lane concurrently. BTT lanes are also held across arena_write_bytes() calls. That path reaches nsio_rw_bytes(), which flushes writes with nvdimm_flush(). Some provider flush callbacks can sleep, making a spinlock the wrong primitive for the lane lifetime. Replace the spinlock-based recursion model with a dynamically allocated per-lane mutex array and take the lane lock unconditionally. Add might_sleep() to catch any future atomic-context caller. Found with the ndctl unit test btt-check.sh.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Низкое
Частичное нарушение работы

Строка CVSS v3.1