目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-89928— KVM x86/mmu 无锁 rmap 遍历缺陷

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

在 Linux 内核中,以下漏洞已得到解决: KVM: x86/mmu: 在无锁 rmap 遍历中消费已加锁的 rmap 值 故意在观察到空的 rmap 时省略(elide)rmap 锁。在这种情况下, 也会重新启用抢占(preemption)并返回零,因此调用者既未持有 rmap 锁,也未持有抢占引用。该省略(elision)所依赖的不变量(invariant)被记录如下: > 如果 rmap 为空,则省略锁。因为无锁遍历器(只读模式)既无需也无法遍历空的 rmap,也无法向 rmap 添加条目。换言之,只有那些

CVSS 8.8 · High EPSS 0.17% · P6

可能的 ATT&CK 技术 1 AI

T1562.008

影响版本矩阵 8

厂商产品 版本范围状态
Linux Linux af3b6a9eba48419732b07a0472db7160282f0f39< 41debfc98526c0a95c41a62435aca0a70340a26d affected
af3b6a9eba48419732b07a0472db7160282f0f39< 8edb3c09e43f7cd8a5dfd291c6e0fc9c74d4621d affected
af3b6a9eba48419732b07a0472db7160282f0f39< e428f9779a43737d830111238816f1928b07aefb affected
6.15 affected
< 6.15 unaffected
6.18.51≤ 6.18.* unaffected
7.2.5≤ 7.2.* unaffected
7.3-rc1≤ * unaffected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-89928 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
KVM: x86/mmu: Consume the locked rmap value in the lockless rmap walk
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: Consume the locked rmap value in the lockless rmap walk __kvm_rmap_lock() deliberately elides the rmap lock when it observes an empty rmap. In that case kvm_rmap_lock_readonly() also re-enables preemption and returns zero, so the caller holds neither the rmap lock nor a preemption reference. The elision documents the invariant it relies on: * Elide the lock if the rmap is empty, as lockless walkers (read-only * mode) don't need to (and can't) walk an empty rmap, nor can they add * entries to the rmap. I.e. the only paths that process empty rmaps * do so while holding mmu_lock for write, and are mutually exclusive. kvm_rmap_age_gfn_range() ignores the returned value and unconditionally enters for_each_rmap_spte_lockless(). The iterator started with rmap_get_first(), which re-reads rmap_head->val rather than using the value returned by the lock. If a writer populates the rmap between the lock's read and the iterator's re-read, the aging path walks the newly installed rmap without holding its lock. For a KVM_RMAP_MANY rmap this leaves the walker following a pte_list_desc chain that it never locked. A writer holding mmu_lock for write may free that chain (e.g. kvm_zap_all_rmap_sptes() on the recycle path, or any rmap zap) via kmem_cache_free() while the walk is in progress, giving a slab use-after-free. Nothing serialises the two: the aging path runs without mmu_lock when CONFIG_KVM_MMU_LOCKLESS_AGING=y, and the rmap lock that would otherwise exclude the writer was elided. Because the empty path re-enables preemption, the interval between the two reads can span an arbitrary scheduling delay. Fix the class of bug by having the lockless walk consume the value returned by the lock instead of re-reading the rmap. Split rmap_get_first() into __rmap_get_first(), which starts an iterator from an already-read rmap value, and make for_each_rmap_spte_lockless() take that value and call __rmap_get_first() directly. kvm_rmap_age_gfn_range() passes the value returned by kvm_rmap_lock_readonly(): when the lock was elided the value is zero, __rmap_get_first() returns NULL, and the walk is skipped. No lockless walker re-reads the rmap, so the lock-elision invariant cannot be violated, and no lock()-without-paired-unlock() path is added to the aging code.
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux af3b6a9eba48419732b07a0472db7160282f0f39 ~ 41debfc98526c0a95c41a62435aca0a70340a26d -
Linux Linux 6.15 -

二、漏洞 CVE-2026-89928 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-89928 的情报信息

请登录查看更多情报信息。

CVE-2026-89928 其他参考 (3)

同批安全公告 · Linux · 2026-09-16 · 共 276 条

CVE-2026-90048 9.8 CRITICAL Linux内核NTFS3文件系统越界写漏洞
CVE-2026-90012 9.8 CRITICAL SPI DMA映射所有权修复
CVE-2026-89970 9.8 CRITICAL NVM Target SQ拆除时超时工作未同步
CVE-2026-89857 9.8 CRITICAL QLogic qla2xxx NVMe LS拒绝竞态条件漏洞
CVE-2026-89969 9.8 CRITICAL Linux内核 nvmet-tcp 越界写入漏洞
CVE-2026-89847 9.8 CRITICAL qla2xxx SCSI驱动异步IOCB超时双重完成漏洞
CVE-2026-89972 9.8 CRITICAL NVMe驱动错误路径SRCU宽限期缺失漏洞
CVE-2026-89990 9.8 CRITICAL Ceph ceph_mds_check_access 互斥锁缺失漏洞
CVE-2026-90036 9.8 CRITICAL Linux NFSd 阻塞锁收割时释放后使用漏洞
CVE-2026-90038 9.8 CRITICAL Linux内核NFSD导出撤销后使用漏洞
CVE-2026-90037 9.8 CRITICAL Linux内核NFSD close_lru释放后使用漏洞
CVE-2026-89788 9.8 CRITICAL Linux kernel ksmbd 释放后使用漏洞
CVE-2026-89783 9.8 CRITICAL Linux内核 xfrm6 越界写入漏洞
CVE-2026-90042 9.8 CRITICAL Ceph 虚拟内存分配缓冲区文件名解密漏洞
CVE-2026-89778 9.8 CRITICAL isofs 空 zisofs 块页面数组越界访问漏洞
CVE-2026-89915 9.3 CRITICAL KVM arm64 移除虚拟机级 VNCR 映射计数器
CVE-2026-90049 9.3 CRITICAL 内核网络子系统中skb_zerocopy处理中的缺陷
CVE-2026-89775 9.3 CRITICAL KVM arm64 VNCR TLB大小计算漏洞
CVE-2026-89916 9.3 CRITICAL KVM arm64 VNCR失效重试漏洞
CVE-2026-89930 9.3 CRITICAL KVM嵌套虚拟化本地TLB刷新漏洞

显示前 20 条,共 276 条。 查看全部 &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-89928

暂无评论


发表评论