Описание
In the Linux kernel, the following vulnerability has been resolved:
mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
When the oob buffer length is not in multiple of words, the oob write
function does out-of-bounds read on the oob source buffer at the last
iteration. Fix that by always checking length limit on the oob buffer
read and fill with 0xff when reaching the end of the buffer to the oob
registers.
A buffer overflow vulnerability was found in the Linux kernel's Broadcom NAND controller driver when writing out-of-band data. When the OOB buffer length isn't a multiple of word size, the write function performs an out-of-bounds read on the source buffer during its final iteration. This can read beyond allocated memory and potentially cause memory corruption or crashes, resulting in denial of service.
Отчет
NAND flash uses OOB (out-of-band) areas to store metadata like error correction codes alongside the main data. The Broadcom NAND driver's OOB write function processes this data in word-sized chunks for efficiency. However, when the OOB buffer size isn't evenly divisible by the word size, the final iteration of the write loop doesn't have a full word of data available. The code still attempts to read a complete word from the source buffer, reading past the buffer's end into whatever memory happens to follow it. Depending on what lies beyond the buffer, this could read uninitialized memory, crash due to page faults, or incorporate garbage values into the OOB data written to flash. The fix adds explicit length checks and pads with 0xff (the NAND erase value) when reaching the buffer end. This primarily affects systems using Broadcom NAND controllers with OOB operations.
Меры по смягчению последствий
To mitigate this issue, prevent the brcmnand module from being loaded. See https://access.redhat.com/solutions/41278 for instructions on blacklisting kernel modules.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Enterprise Linux 10 | kernel | Not affected | ||
| Red Hat Enterprise Linux 6 | kernel | Not affected | ||
| Red Hat Enterprise Linux 7 | kernel | Not affected | ||
| Red Hat Enterprise Linux 7 | kernel-rt | Not affected | ||
| Red Hat Enterprise Linux 8 | kernel | Not affected | ||
| Red Hat Enterprise Linux 8 | kernel-rt | Not affected | ||
| Red Hat Enterprise Linux 9 | kernel | Not affected | ||
| Red Hat Enterprise Linux 9 | kernel-rt | Not affected |
Показывать по
Дополнительная информация
Статус:
5.5 Medium
CVSS3
Связанные уязвимости
In the Linux kernel, the following vulnerability has been resolved: mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write When the oob buffer length is not in multiple of words, the oob write function does out-of-bounds read on the oob source buffer at the last iteration. Fix that by always checking length limit on the oob buffer read and fill with 0xff when reaching the end of the buffer to the oob registers.
In the Linux kernel, the following vulnerability has been resolved: mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write When the oob buffer length is not in multiple of words, the oob write function does out-of-bounds read on the oob source buffer at the last iteration. Fix that by always checking length limit on the oob buffer read and fill with 0xff when reaching the end of the buffer to the oob registers.
In the Linux kernel, the following vulnerability has been resolved: m ...
In the Linux kernel, the following vulnerability has been resolved: mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write When the oob buffer length is not in multiple of words, the oob write function does out-of-bounds read on the oob source buffer at the last iteration. Fix that by always checking length limit on the oob buffer read and fill with 0xff when reaching the end of the buffer to the oob registers.
Уязвимость функции write_oob_to_regs() модуля drivers/mtd/nand/raw/brcmnand/brcmnand.c драйвера памяти MTD ядра операционной системы Linux, позволяющая нарушителю вызвать отказ в обслуживании
5.5 Medium
CVSS3