В ядре Linux устранена следующая уязвимость:
mtd: rawnand: сериализовать блокировку/разблокировку для других операций NAND
nand_lock() и nand_unlock() вызывают чип->ops.lock_area/unlock_area
без удержания блокировки устройства NAND. На контроллерах, реализующих
SET_FEATURES с помощью нескольких низкоуровневых команд PIO, они могут соревноваться с
одновременные операции фонового стирания/записи UBI/UBIFS, которые содержат
блокировка устройства, что приводит к конфликтам cmd_pending на контроллере NAND.
Добавьте nand_get_device()/nand_release_device() вокруг блокировки/разблокировки.
операции по сериализации их для доступа ко всем остальным контроллерам NAND.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: mtd: rawnand: serialize lock/unlock against other NAND operations nand_lock() and nand_unlock() call into chip->ops.lock_area/unlock_area without holding the NAND device lock. On controllers that implement SET_FEATURES via multiple low-level PIO commands, these can race with concurrent UBI/UBIFS background erase/write operations that hold the device lock, resulting in cmd_pending conflicts on the NAND controller. Add nand_get_device()/nand_release_device() around the lock/unlock operations to serialize them against all other NAND controller access.