CVE-2026-93075 in Linux
摘要
由 VulDB • 2026-09-18
在 Linux 内核中,已修复以下漏洞:
dax/fsdev: 在解绑时清除 pgmap ops 和 owner
fsdev_dax_probe() 设置 pgmap->ops = &fsdev_pagemap_ops 以及 pgmap->owner = dev_dax,但从未对这些字段进行清理。对于动态设备,pgmap 是通过 devm 分配并在解绑时释放的,因此这无害。而对于静态设备,pgmap 是由 dax 总线拥有的共享且长期存在的对象(kill_dev_dax() 仅对非静态情况将 dev_dax->pgmap 置为 NULL),并且 device.c 中的 probe 函数仅设置 pgmap->type,从未清除 ops/owner。
因此,在 fsdev 解绑静态设备后,过时的 fsdev_pagemap_ops 会保留在共享的 pgmap 上。如果随后将该设备重新绑定到 device_dax(MEMORY_DEVICE_GENERIC,它不安装 ->memory_failure),或者卸载 fsdev_dax 模块,后续对该 pgmap 进行的 memory_failure 操作将通过过时——甚至可能已释放——的处理程序进行分发。
注册一个 devm action,以便在解绑时清除 pgmap->ops 和 pgmap->owner,这与 probe 阶段设置它们的逻辑对称,从而确保一旦 fsdev 分离,pgmap 不再携带任何 fsdev 状态信息。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.