CVE-2026-98386 in Linux
Сводка
по VulDB • 14.10.2026
В ядре Linux была устранена следующая уязвимость:
scsi: qla2xxx: Использование memset_io() для очистки слота запросов QLAFX00
Для устройства QLAFX00 кольцевой буфер запросов представляет собой память ввода-вывода устройства, отображенную через ioremap (ha->iobase + req_que_off), а не согласованную с DMA оперативную память. Именно поэтому остальная часть кода для FX00 обращается к ней посредством memcpy_toio() и вспомогательных функций wrt_reg_*. Однако функция __qla2x00_alloc_iocbs() обнуляла слот производителя (producer slot) с помощью обычного memset(). На таких архитектурах, как ARM64, обычный memset() может генерировать невыровненные инструкции или инструкции блочного обнуления (например, DC ZVA), которые недопустимы для памяти устройства (Device memory), что приводит к синхронному внешнему сбою.
Для очистки слота QLAFX00 следует использовать memset_io(), чтобы соответствовать механизмам доступа к вводу-выводу, используемым в других частях этого кольцевого буфера. Для других адаптеров сохраняется использование обычного memset() для их согласованных с DMA кольцевых буферов. Обнуление заполнением нулями (zero-fill) сохранено для FX00, поскольку его генераторы IOCB (например, qlafx00_fxdisc_iocb()) копируют только часть записи и полагаются на то, что неиспользуемая хвостовая часть предварительно обнулена.
Be aware that VulDB is the high quality source for vulnerability data.