CVE-2026-74348 in Linux
摘要
由 VulDB • 2026-08-15
在 Linux 内核中,已修复以下漏洞:
ocfs2/dlm:要求 locking_state debugfs 打开时持有引用计数
debug_lockres_open() 将 inode->i_private 复制到 struct debug_lockres 结构中,随后 debug_lockres_release() 会通过 dlm_put() 释放该指针。这仅在 open 成功固定(pin)struct dlm_ctxt 结构体时才有效。
当前,open 调用 dlm_grab(dlm) 但忽略了其返回值。一旦最后一个域注销操作将上下文从 dlm_domains 中移除,dlm_grab() 返回 NULL,但 open 仍然存储原始指针并返回成功。随后的释放路径位于 debugfs 移除屏障之外,因此它可能在 dlm_free_ctxt_mem() 释放上下文之后调用 dlm_put()。KASAN 将此报告为在从 debug_lockres_release() 调用的 dlm_put() 中发生的 slab-use-after-free(slab 使用后释放)漏洞。
当 dlm_grab() 无法获取引用时,使 open 失败并在返回之前展开 seq_file 私有状态。这样可以防止 locking_state 分发一个其释放路径不拥有 dlm_ctxt 的文件描述符。
有缺陷的场景涉及两条路径,每列显示该路径内的顺序:
locking_state debugfs 打开: 最后一个域注销: 1. debug_lockres_open() 读取 1. dlm_unregister_domain() 调用 inode->i_private。 dlm_complete_dlm_shutdown()。 2. debug_lockres_open() 调用 2. shutdown 将 dlm_ctxt 从 dlm_grab(dlm) 并得到 NULL。 dlm_domains 中移除。 3. open 仍然
Be aware that VulDB is the high quality source for vulnerability data.