В ядре Linux устранена следующая уязвимость:
dmaengine: sh: rz-dmac: переместить запрос прерывания после того, как все настроено
Как только прерывание запрошено, обработчик прерывания может запуститься немедленно. Поскольку обработчик IRQ может получить доступ к каналу->ch_base, который инициализируется
только после запроса IRQ, это может привести к недопустимому доступу к памяти. Аналогично, поток IRQ может получить доступ к неинициализированным данным (ld_free,
списки ld_queue и ld_active), что также может привести к проблемам.
Запрашивайте прерывания только после того, как все настроено. Чтобы сохранить ошибку
путь проще, используйте dmam_alloc_coherent() вместо dma_alloc_coherent().
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: dmaengine: sh: rz-dmac: Move interrupt request after everything is set up Once the interrupt is requested, the interrupt handler may run immediately. Since the IRQ handler can access channel->ch_base, which is initialized only after requesting the IRQ, this may lead to invalid memory access. Likewise, the IRQ thread may access uninitialized data (the ld_free, ld_queue, and ld_active lists), which may also lead to issues. Request the interrupts only after everything is set up. To keep the error path simpler, use dmam_alloc_coherent() instead of dma_alloc_coherent().
Характеристики атаки
Последствия
Строка CVSS v3.1