CVE-2026-93075 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
dax/fsdev: очистка операций и владельца pgmap при отсоединении (unbind)
Функция `fsdev_dax_probe()` устанавливает значения `pgmap->ops = &fsdev_pagemap_ops` и `pgmap->owner = dev_dax`, но они никогда не очищаются. Для динамического устройства структура pgmap выделяется с использованием механизма devm и освобождается при отсоединении, поэтому это безопасно (не наносит вреда). Для статического устройства структура pgmap является общей и долгоживущей, принадлежащей шине dax (`kill_dev_dax()` обнуляет `dev_dax->pgmap` только для нестатических случаев), а функция probe в device.c устанавливает только `pgmap->type`, никогда не очищая поля ops/owner.
Таким образом, после того как fsdev отсоединяет статическое устройство, устаревшие (stale) значения `fsdev_pagemap_ops` сохраняются в общей структуре pgmap. Если затем устройство перепривязывается к device_dax (`MEMORY_DEVICE_GENERIC`, который не устанавливает обработчик ->memory_failure), или модуль fsdev_dax выгружается, последующий вызов memory_failure для этой структуры pgmap будет направлен через устаревший — и возможно уже освобождённый (freed) — обработчик.
Регистрируется действие devm, которое очищает `pgmap->ops` и `pgmap->owner` при отсоединении (unbind), что симметрично их установке в функции probe, чтобы структура pgmap не содержала состояния fsdev после того, как fsdev будет отключен.
If you want to get best quality of vulnerability data, you may have to visit VulDB.