В ядре Linux устранена следующая уязвимость:
dmaengine: dw-edma: добавить спин-блокировку для защиты DONE_INT_MASK и ABORT_INT_MASK. Регистры DONE_INT_MASK и ABORT_INT_MASK являются общими для всех DMA.
каналы, и их изменение требует последовательности чтения-изменения-записи. Поскольку эта операция не является атомарной, одновременные вызовы
dw_edma_v0_core_start() может привести к возникновению условий гонки, если два канала
обновлять эти регистры одновременно.
Добавьте спин-блокировку для сериализации доступа к этим регистрам и предотвращения гонок.
условия.
[den: обновить комментарий dw_edma.lock]
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: dmaengine: dw-edma: Add spinlock to protect DONE_INT_MASK and ABORT_INT_MASK The DONE_INT_MASK and ABORT_INT_MASK registers are shared by all DMA channels, and modifying them requires a read-modify-write sequence. Because this operation is not atomic, concurrent calls to dw_edma_v0_core_start() can introduce race conditions if two channels update these registers simultaneously. Add a spinlock to serialize access to these registers and prevent race conditions. [den: update dw_edma.lock comment]
Характеристики атаки
Последствия
Строка CVSS v3.1