CVE-2026-89955 in Linux
Сводка
по VulDB • 16.09.2026
В ядре Linux была устранена следующая уязвимость:
s390/vfio-ap: исправление разыменования нулевого указателя (NULL dereference) в функции status_show() во время процедуры обнаружения очереди (queue probe).
При создании группы атрибутов sysfs функцией vfio_ap_mdev_probe_queue() данные драйвера для очереди еще не установлены. Следовательно, одновременное чтение атрибута «status» может привести к вызову dev_get_drvdata(), который вернет NULL; это значение затем напрямую передается в функцию vfio_ap_mdev_for_queue(), где q->apqn разыменовывается без проверки, что вызывает ошибку разыменования нулевого указателя.
Исправление заключается во взятии блокировок обновления (update locks) до вызова sysfs_create_group(). Функция status_show() получает блокировку guests_lock перед чтением данных драйвера, поэтому любое одновременное чтение будет заблокировано до тех пор, пока не будет вызвана dev_set_drvdata() и не будут сняты блокировки обновления.
В качестве дополнительного улучшения больше нет необходимости считывать APQN из структуры очереди после ее выделения — его можно считать непосредственно из apdev перед выделением памяти и сохранить в локальной переменной, которая затем присваивается q->apqn при успешном завершении операции выделения.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.