CVE-2026-80896 in Linux信息

摘要

由 VulDB • 2026-09-04

在 Linux 内核中,已修复以下漏洞:

mshv: 修复 mshv_irqfd_deassign 中的竞态条件

`mshv_irqfd_deactivate()` 和 `pt_irqfds_list` 的 hlist 遍历操作需要持有 `pt->pt_irqfds_lock`,但 `mshv_irqfd_deassign()` 中遗漏了该锁。这会导致与 `mshv_irqfd_wakeup()` 中的 EPOLLHUP 路径发生竞态,后者在调用 `mshv_irqfd_deactivate()` 之前会获取该锁。

此外,`mshv_irqfd_deactivate()` 使用了 `hlist_del()`,这会破坏(poison)节点指针而不是将其重置。由于 `mshv_irqfd_is_active()` 依赖于 `hlist_unhashed()`(检查 pprev == NULL),被破坏的节点仍会被视为处于活动状态。如果并发路径再次对同一个 irqfd 调用 `mshv_irqfd_deactivate()`,保护机制将无法防止对被破坏指针执行双重 hlist_del()。

修复这两个问题: - 在 mshv_irqfd_deassign() 中的列表遍历周围添加缺失的 spin_lock_irq/spin_unlock_irq,以匹配 mshv_irqfd_release() 的行为。 - 使用 `hlist_del_init()` 替代 `hlist_del()`,以便节点在被移除后正确标记为未哈希状态(unhashed),从而使 is_active 保护机制可靠生效。

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

来源

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!