В ядре Linux устранена следующая уязвимость: dmaengine: tegra: исправлен расчет размера пакета. В настоящее время оборудование Tegra GPC DMA требует, чтобы длина передачи быть кратным максимальному размеру пакета, настроенному для канала. Когда клиент запрашивает перевод, длина которого не делится без остатка настроенный максимальный размер пакета, DMA зависает с частичным пакетом при конец.
Исправьте это, уменьшив размер пакета до наибольшего значения степени 2.
который равномерно делит длину передачи. Например, 40-байтовый
при передаче с максимальным пакетом размером 16 байт теперь будет использоваться пакет размером 8 байт.
(40/8 = 5 полных очередей) вместо того, чтобы вызывать зависание. Эта проблема наблюдалась с драйвером UART PL011, где TX DMA
застревали передачи произвольной длины.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: dmaengine: tegra: Fix burst size calculation Currently, the Tegra GPC DMA hardware requires the transfer length to be a multiple of the max burst size configured for the channel. When a client requests a transfer where the length is not evenly divisible by the configured max burst size, the DMA hangs with partial burst at the end. Fix this by reducing the burst size to the largest power-of-2 value that evenly divides the transfer length. For example, a 40-byte transfer with a 16-byte max burst will now use an 8-byte burst (40 / 8 = 5 complete bursts) instead of causing a hang. This issue was observed with the PL011 UART driver where TX DMA transfers of arbitrary lengths were stuck.
Характеристики атаки
Последствия
Строка CVSS v3.1