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

目标: 1000 元 · 已筹: 1336

100%

CVE-2026-89777— vfio/pci初始化失败时未清空msi_perm内存泄漏

一分钟漏洞结论

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

In the Linux kernel, the following vulnerability has been resolved: vfio/pci: clear vdev->msi_perm after freeing it on init failure vfio_msi_cap_len() lazily allocates the per-device MSI permission table: vdev->msi_perm = kmalloc_obj(struct perm_bits, GFP_KERN

获取后续新漏洞提醒 登录后订阅

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

漏洞信息

Shenlong is analyzing...


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

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

Vulnerability Title
vfio/pci: clear vdev->msi_perm after freeing it on init failure
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: vfio/pci: clear vdev->msi_perm after freeing it on init failure vfio_msi_cap_len() lazily allocates the per-device MSI permission table: vdev->msi_perm = kmalloc_obj(struct perm_bits, GFP_KERNEL_ACCOUNT); if (!vdev->msi_perm) return -ENOMEM; ret = init_pci_cap_msi_perm(vdev->msi_perm, len, flags); if (ret) { kfree(vdev->msi_perm); return ret; /* vdev->msi_perm left dangling */ } When init_pci_cap_msi_perm() -> alloc_perm_bits() fails with -ENOMEM, the error path frees vdev->msi_perm but leaves the freed pointer stored in it. vdev->msi_perm is not re-zeroed later because struct vfio_pci_core_device is per-device and persists across open/close cycles, and the vfio_config_init() error path returns without calling vfio_config_free(). So the dangling pointer outlives the failed open. That leads to two use-after-frees on the same device: 1. Reuse. The next vfio_config_init() sees the stale pointer at "if (vdev->msi_perm) return len;" and reuses the freed object. MSI config accesses in vfio_pci_config_rw_single() then dereference and call the freed perm->readfn / perm->writefn function pointers. 2. Double free. A later vfio_config_free() runs free_perm_bits() and kfree() on the already-freed object. Fix it by NULLing vdev->msi_perm after the kfree(), matching the NULL-after-free discipline already used in free_perm_bits() and vfio_config_free(). BUG: KASAN: slab-use-after-free in vfio_pci_config_rw_single (drivers/vfio/pci/vfio_pci_config.c:1961) Read of size 8 at addr ffff88800fcc88d0 by task exploit/143 Call Trace: ... kasan_report (mm/kasan/report.c:595) vfio_pci_config_rw_single (drivers/vfio/pci/vfio_pci_config.c:1961) vfio_pci_config_rw (drivers/vfio/pci/vfio_pci_config.c:1986) vfio_pci_rw (drivers/vfio/pci/vfio_pci_core.c:1599) vfs_read (fs/read_write.c:572) __x64_sys_pread64 (fs/read_write.c:764) do_syscall_64 (arch/x86/entry/syscall_64.c:94) ... Followed on device close by a double free of the same object: Oops: general protection fault, probably for non-canonical address 0x1f63e0e8000008: 0000 [#1] SMP KASAN NOPTI RIP: 0010:kfree (mm/slub.c:6711) Call Trace: vfio_config_free (drivers/vfio/pci/vfio_pci_config.c:1861) vfio_pci_core_disable (drivers/vfio/pci/vfio_pci_core.c:685) vfio_pci_core_close_device (drivers/vfio/pci/vfio_pci_core.c:777) vfio_df_close (drivers/vfio/vfio_main.c:602) vfio_device_fops_release (drivers/vfio/vfio_main.c:648) __fput (fs/file_table.c:512) __x64_sys_close (fs/open.c:1496) do_syscall_64 (arch/x86/entry/syscall_64.c:94) ... Kernel panic - not syncing: Fatal exception
来源: CVE Program / CVE List V5
CVSS Information
N/A
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux 30ea32ab1951c80c6113f300fce2c70cd12659e4 ~ eb84cd81040e58dd05ac190f561f2115e3367249 -
Linux Linux 4.20 -

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

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

未找到公开 POC。

登录以生成 AI POC

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

登录查看更多情报信息。

CVE-2026-89777 其他参考 (8)

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

CVE-2026-89783 Linux内核 xfrm6 越界写入漏洞
CVE-2026-89774 Linux内核蓝牙SCO连接准备函数缺陷
CVE-2026-89775 KVM arm64 VNCR TLB大小计算漏洞
CVE-2026-89776 vxlan: vnifilter 属性长度校验缺陷
CVE-2026-89778 isofs 空 zisofs 块页面数组越界访问漏洞
CVE-2026-89779 NTFS3文件系统efs size验证缺陷
CVE-2026-89781 Linux NTFS3 驱动越界读取漏洞
CVE-2026-89780 Qualcomm rmnet 去聚合帧 skb->dev 恢复漏洞
CVE-2026-89782 NTFS3 fs/ntfs3 拒绝重启表增长漏洞
CVE-2026-89784 SunRPC rpcb_register_inet4/6 返回值检查漏洞
CVE-2026-89793 ublk 只读设备 mmap 权限清除漏洞
CVE-2026-89785 Linux内核ntfs3驱动越界读取漏洞
CVE-2026-89787 Ext4 文件系统 ext4_search_dir 缓冲区溢出漏洞
CVE-2026-89786 Linux内核ext4文件系统越界读取漏洞
CVE-2026-89788 Linux kernel ksmbd 释放后使用漏洞
CVE-2026-89790 Linux内核ipv6模块除零漏洞
CVE-2026-89789 Linux内核GTP驱动UAF漏洞
CVE-2026-89791 Linux perf 工具竞态导致 UAF 漏洞
CVE-2026-89792 Linux ksmbd 共享配置越界读取漏洞

IV. Related Vulnerabilities

V. Comments for CVE-2026-89777

暂无评论


发表评论