Open
CVE-2026-89777 #21108
Zhang YuweiAdd on  4 days ago
Zhang Yuwei
Zhang Yuwei
4 days ago Create

一、漏洞信息
漏洞编号:CVE-2026-89777
漏洞归属组件:kernel
漏洞归属的版本:4.19.140,4.19.90,5.10.0,6.1.19,6.18.40,6.18.56,6.4.0,6.6.0
CVSS评分:
BaseScore:0.0 None
Vector:
漏洞简述:
In the Linux kernel, the following vulnerability has been resolved:vfio/pci: clear vdev->msi_perm after freeing it on init failurevfio_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, theerror path frees vdev->msi_perm but leaves the freed pointer stored init. vdev->msi_perm is not re-zeroed later because structvfio_pci_core_device is per-device and persists across open/close cycles,and the vfio_config_init() error path returns without callingvfio_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 theNULL-after-free discipline already used in free_perm_bits() andvfio_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
漏洞公开时间:2026-09-16 17:17:08
漏洞创建时间:2026-11-03 14:14:34
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2026-89777

更多参考(点击展开)

无

漏洞分析指导链接:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
其他
漏洞补丁信息:

详情(点击展开)

无

二、漏洞分析结构反馈
影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:vfio/pci: clear vdev->msi_perm after freeing it on init failurevfio_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, theerror path frees vdev->msi_perm but leaves the freed pointer stored init. vdev->msi_perm is not re-zeroed later because structvfio_pci_core_device is per-device and persists across open/close cycles,and the vfio_config_init() error path returns without callingvfio_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 theNULL-after-free discipline already used in free_perm_bits() andvfio_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 exceptionThe Linux kernel CVE team has assigned CVE-2026-89777 to this issue.
openEuler评分:
8.8
Vector:CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.master(6.18.40):不受影响
2.openEuler-20.03-LTS-SP4(4.19.90):受影响
3.openEuler-22.03-LTS-SP3(5.10.0):受影响
4.openEuler-22.03-LTS-SP4(5.10.0):受影响
5.openEuler-24.03-LTS(6.6.0):受影响
6.openEuler-24.03-LTS-Next(6.6.0):不受影响
7.openEuler-24.03-LTS-SP1(6.6.0):受影响
8.openEuler-24.03-LTS-SP2(6.6.0):受影响
9.openEuler-24.03-LTS-SP3(6.6.0):受影响
10.openEuler-24.03-LTS-SP4(6.6.0):受影响

修复是否涉及abi变化(是/否):
1.master(6.18.40):否
2.openEuler-20.03-LTS-SP4(4.19.90):否
3.openEuler-22.03-LTS-SP3(5.10.0):否
4.openEuler-22.03-LTS-SP4(5.10.0):否
5.openEuler-24.03-LTS(6.6.0):否
6.openEuler-24.03-LTS-Next(6.6.0):否
7.openEuler-24.03-LTS-SP1(6.6.0):否
8.openEuler-24.03-LTS-SP2(6.6.0):否
9.openEuler-24.03-LTS-SP3(6.6.0):否
10.openEuler-24.03-LTS-SP4(6.6.0):否

原因说明:
1.master(6.18.40):不受影响-漏洞代码不能被攻击者触发
2.openEuler-20.03-LTS-SP4(4.19.90):不修复-超出修复范围
3.openEuler-22.03-LTS-SP3(5.10.0):不修复-超出修复范围
4.openEuler-22.03-LTS-SP4(5.10.0):正常修复
5.openEuler-24.03-LTS(6.6.0):不修复-超出修复范围
6.openEuler-24.03-LTS-Next(6.6.0):不受影响-漏洞代码不能被攻击者触发
7.openEuler-24.03-LTS-SP1(6.6.0):应源码修复-openEuler社区发布软件包不受影响
8.openEuler-24.03-LTS-SP2(6.6.0):不修复-超出修复范围
9.openEuler-24.03-LTS-SP3(6.6.0):应源码修复-openEuler社区发布软件包不受影响
10.openEuler-24.03-LTS-SP4(6.6.0):应源码修复-openEuler社区发布软件包不受影响

likedislike
devstation-robot
devstation-robot
4 days ago Comments:

检测到新建 CVE Issue,CVE-ID: CVE-2026-89777。

你可以通过以下两种方式使用 CVE 修复服务:

  1. 分支影响分析

    • 在本 Issue 下评论:/analysis_branches
    • 系统将自动分析各个分支是否受影响,并在本 Issue 下给出表格形式的分析结果;
  2. 在指定分支上创建 PR(修复提交)

    • 在本 Issue 下按如下格式评论(branch、name、email 为必填字段,每个字段单独一行):
/create_pr

branch: OLK-6.6 OLK-5.10
name: dev
email: dev@devstation.com
backport-engine: opencode
  • 说明:
    • branch: 需要创建 PR 的目标分支列表,例如 OLK-6.6 OLK-5.10;
    • name: PR 签名人姓名(如责任人或安全负责人);
    • email: PR 签名人邮箱;
    • backport-engine(可选):可选 portgpt、mystique 或 opencode;不填时默认使用 opencode;

系统会根据上述信息自动在指定分支上创建 PR,并在本 Issue 下反馈结果。

provided by DevStation.

likedislike
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago changed custom priority from 无优先级 to 无优先级
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Modify description of issue
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Assign kylin-mayukun as responsible person
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Assign wkfxxx、zeng_zhaorong、sanglipeng、seezyw、oekernel、hanjunguo as responsible person, remove original responsible person: kylin-mayukun
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:

issue处理注意事项:
1. 提交正常修复分支的修复PR时,必须关联当前issue,否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复;
注: 内容的关键词(影响性分析说明, openEuler评分, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否), 原因说明)不能省略,省略后cve-manager将无法正常解析填写内容.


影响性分析说明:

openEuler评分: (评分和向量)

受影响版本排查(受影响/不受影响):
1.master(6.18.40):
2.openEuler-20.03-LTS-SP4(4.19.90):
3.openEuler-22.03-LTS-SP4(5.10.0):
4.openEuler-24.03-LTS-Next(6.6.0):
5.openEuler-24.03-LTS-SP1(6.6.0):
6.openEuler-24.03-LTS-SP3(6.6.0):
7.openEuler-24.03-LTS-SP4(6.6.0):

修复是否涉及abi变化(是/否):
1.master(6.18.40):
2.openEuler-20.03-LTS-SP4(4.19.90):
3.openEuler-22.03-LTS-SP4(5.10.0):
4.openEuler-24.03-LTS-Next(6.6.0):
5.openEuler-24.03-LTS-SP1(6.6.0):
6.openEuler-24.03-LTS-SP3(6.6.0):
7.openEuler-24.03-LTS-SP4(6.6.0):

原因说明:
1.master(6.18.40):
2.openEuler-20.03-LTS-SP4(4.19.90):
3.openEuler-22.03-LTS-SP4(5.10.0):
4.openEuler-24.03-LTS-Next(6.6.0):
5.openEuler-24.03-LTS-SP1(6.6.0):
6.openEuler-24.03-LTS-SP3(6.6.0):
7.openEuler-24.03-LTS-SP4(6.6.0):


原因说明填写请参考下方表格(注意:版本是否受影响和版本的原因说明必须对应,例如master版本分支受影响,那原因说明只能是受影响对应的原因之一!):

分支状态
原因说明 使用场景
受影响 正常修复 受影响且需要修复(包含升级版本修复)的漏洞;
受影响且已经修复的漏洞(历史修复PR也需要关联issue);
若因特殊原因无法修复,应修改原因说明为【不修复-特殊原因】,并在安委会备案相关情况。
受影响 暂不修复-漏洞仍在分析中 已关注到相关漏洞,正在处理,未明确漏洞影响和修复方案。
受影响 暂不修复-暂无解决方案或补丁 当前没有可用的修复或补救措施。【影响性分析】中应包含有关为什么没有修复或补救措施的详细说明、上游相关PR等。
受影响 不修复-超出修复范围 没有漏洞的修复计划。当版本停维、软件包宣布生命周期终止或弃用使用。
受影响 不修复-特殊原因导致不再修复 如存在其他特殊情况不修复相关漏洞,或评估后无法升级修复,应在openEuler社区安全委员会例会进行说明备案。
【影响性分析】中应包含不发布修复的详细说明、特殊情况还应有安委会会议纪要。
受影响 应源码修复-openEuler社区发布软件包不受影响 源码存在漏洞,但openEuler发布的二进制包因编译/配置原因不受影响;仍需合入上游补丁以保持源码健康,但不触发已发布版本更新。
不受影响 不受影响-组件不存在 软件不受影响,因为易受攻击的组件不在产品中。
不受影响 不受影响-已有内置的内联控制或缓解措施 内置的内联控制或缓解措施可防止攻击者利用漏洞
不受影响 不受影响-漏洞代码不能被攻击者触发 易受攻击的组件存在,并且该组件包含易受攻击的代码。但是,易受攻击的代码的使用方式使得攻击者无法进行任何预期的攻击。
不受影响 不受影响-漏洞代码不在执行路径 易受影响的代码在执行过程中不可访问,包括产品的非预期状态。产品不使用也不执行的组件。
不受影响 不受影响-漏洞代码不存在 产品不受影响,因为漏洞背后的代码在产品中不存在。与component_not_present不同的是,有问题的组件存在,但由于某种原因(例如安全的编译器选项)使漏洞的特定代码不存在于组件中。

issue处理具体操作请参考:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
pr关联issue具体操作请参考:
https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue

likedislike
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Added label: sig/Kernel
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:

Welcome To openEuler Community

Hey @seezyw , thanks for your contribution to the community.

Bot Usage Manual

I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. You can self-configure the PR merge rules for this repository. For more details, please refer to Here.

Contact Guide

If you have any questions, please contact the SIG: Kernel ,
and any of the maintainers: @hanjunguo, @oekernel, @sanglipeng, @wkfxxx, @zeng_zhaorong ,
and any of the committers: @CTC-XiboWang, @Frank_Sae, @GoGo_phytium, @GongLei-, @LiuYongQiang0816, @SuperSix173, @Tankll2021, @TrueAI, @YiweiZ, @allen-shi, @alvin-ling, @baratta, @bibo_mao, @caixu-blue, @chen-jun-hw, @chenjiesong, @chenjunxin1992, @chenke2026, @chenxiaosonggitcode, @chiqijun, @chizl, @chriszjh, @duanqiangwen, @eingesch, @fangfeng123, @fanghaiqinghw, @gang_he, @gaojuxin09, @gouhao2022, @guohaocs2c, @guzitao, @hanjunguo, @hanliyang, @hellotcc, @henryze, @hewanhan, @hjx_gitff, @hongwu-wang, @howard_lu, @htforge, @hu-chunzhi, @hunan4222, @hygmm, @jackknight, @jerry_lilijun, @jiayi0118, @junlong-zheng, @juntianlinux, @kailiu42, @kaitiandu, @kazero00, @kevinzhu1, @kile2009, @klmengkd, @koishimind, @kongzizaixian, @kunlun_spurs, @kylin-mayukun, @leap-io, @leap-zjke, @leoliu-oc, @li-huisong, @linan888, @linyuexie1, @linyunsheng, @liulongfang, @liyihang0226, @lostway1, @lujialin2, @mao-hongbo, @markyuan4ta21, @mawupeng, @mingqian218472, @mingrui-liu, @mufengyan, @nebulamatrix_rdma, @peterpangogogo, @pigalsofine, @raoxu-deepin, @robinorg, @rock_hw, @sageDriver, @sanglipeng, @shu-shengming, @shuaijiakun, @sinat_17738335, @siyanteng, @sming56_admin, @stavewu, @stkid, @sun_nanyong, @wangboe2022, @wanghang73, @wenzhiwei11, @whoisxxx, @wkfxxx, @woqidaideshi, @wsoydl, @xingmz1, @xukuohai, @yeweihua999, @ygn-ndwd-official, @yonghu_4dc5, @young-sun, @yubo-liu1, @yuehaibing_planb, @yuzenghui1, @zhang-changzhong, @zhangguodong11, @zhangyi089, @zhujianwei001, @zichengqu, @zouyipeng, @zqiao216 .

likedislike
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Added label: CVE/UNFIXED
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:
参考网址 关联pr 状态 补丁链接
https://www.opencve.io/cve/CVE-2026-89777NoneNonehttps://git.kernel.org/stable/c/812f1db7f0755a19ef16ecdc5cec51bcabc5eda5
https://git.kernel.org/stable/c/eb84cd81040e58dd05ac190f561f2115e3367249
https://git.kernel.org/stable/c/533d0c5feef85ee6404b9f41d5564fac6971a008
https://git.kernel.org/stable/c/dc77acfeb979dded39b247b60fef0399536bfa77
https://git.kernel.org/stable/c/d665a1688af7f8fefd7c0eb04f2a37122ce007f4
https://git.kernel.org/stable/c/fda8fb7e8179561693a786a7af593f6b944a21c1
https://git.kernel.org/stable/c/25cdd2a492d868cff1e519a60fe282909c52d385
https://git.kernel.org/stable/c/f0eea8f9013676b42289ec35941e848b8a543e19
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2026-89777
https://security-tracker.debian.org/tracker/CVE-2026-89777NoneNonehttps://git.kernel.org/linus/dc77acfeb979dded39b247b60fef0399536bfa77
http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2026-89777
https://nvd.nist.gov/vuln/detail/CVE-2026-89777
https://ubuntu.com/security/CVE-2026-89777NoneNonehttps://git.kernel.org/stable/c/812f1db7f0755a19ef16ecdc5cec51bcabc5eda5
https://discourse.ubuntu.com/c/project
https://git.kernel.org/stable/c/eb84cd81040e58dd05ac190f561f2115e3367249
https://git.kernel.org/linus/30ea32ab1951c80c6113f300fce2c70cd12659e4
https://git.kernel.org/stable/c/533d0c5feef85ee6404b9f41d5564fac6971a008
https://git.kernel.org/stable/c/dc77acfeb979dded39b247b60fef0399536bfa77
https://git.kernel.org/stable/c/d665a1688af7f8fefd7c0eb04f2a37122ce007f4
https://git.kernel.org/stable/c/fda8fb7e8179561693a786a7af593f6b944a21c1
https://git.kernel.org/stable/c/25cdd2a492d868cff1e519a60fe282909c52d385
https://git.kernel.org/linus/dc77acfeb979dded39b247b60fef0399536bfa77
https://git.kernel.org/stable/c/f0eea8f9013676b42289ec35941e848b8a543e19

说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具。
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1

likedislike
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:

@seezyw CVE信息从NVD同步成功, 稍后请重新加载页面.

likedislike
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago changed custom priority from 无优先级 to 无优先级
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Modify description of issue
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Removed responsible person zeng_zhaorong、sanglipeng、seezyw、oekernel、hanjunguo
Oopeneuler-infra-botCollaborators
4 days ago Associated pull request
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago changed custom priority from 无优先级 to 无优先级
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Modify description of issue
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:

source: @hulk-ci-bot

影响性分析说明:
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

The Linux kernel CVE team has assigned CVE-2026-89777 to this issue.

openEuler评分:
8.8
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

受影响版本排查(受影响/不受影响):
1.master:不受影响
2.openEuler-20.03-LTS-SP4:受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:受影响
5.openEuler-24.03-LTS:受影响
6.openEuler-24.03-LTS-Next:不受影响
7.openEuler-24.03-LTS-SP1:受影响
8.openEuler-24.03-LTS-SP2:受影响
9.openEuler-24.03-LTS-SP3:受影响
10.openEuler-24.03-LTS-SP4:受影响

修复是否涉及abi变化(是/否):
1.master:否
2.openEuler-20.03-LTS-SP4:否
3.openEuler-22.03-LTS-SP3:否
4.openEuler-22.03-LTS-SP4:否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-24.03-LTS-SP1:否
8.openEuler-24.03-LTS-SP2:否
9.openEuler-24.03-LTS-SP3:否
10.openEuler-24.03-LTS-SP4:否

原因说明:
1.master:不受影响-漏洞代码不能被攻击者触发
2.openEuler-20.03-LTS-SP4:不修复-超出修复范围
3.openEuler-22.03-LTS-SP3:不修复-超出修复范围
4.openEuler-22.03-LTS-SP4:正常修复
5.openEuler-24.03-LTS:不修复-超出修复范围
6.openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发
7.openEuler-24.03-LTS-SP1:应源码修复-openEuler社区发布软件包不受影响
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:应源码修复-openEuler社区发布软件包不受影响
10.openEuler-24.03-LTS-SP4:应源码修复-openEuler社区发布软件包不受影响

likedislike
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago Added label: CVE/Need-Source-Fix
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:

@wkfxxx 经过 cve-manager 解析, 已分析的内容如下表所示:

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:vfio/pci: clear vdev->msi_perm after freeing it on init failurevfio_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, theerror path frees vdev->msi_perm but leaves the freed pointer stored init. vdev->msi_perm is not re-zeroed later because structvfio_pci_core_device is per-device and persists across open/close cycles,and the vfio_config_init() error path returns without callingvfio_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 theNULL-after-free discipline already used in free_perm_bits() andvfio_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 exceptionThe Linux kernel CVE team has assigned CVE-2026-89777 to this issue.
已分析 2.openEulerScore 8.8
已分析 3.openEulerVector AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP2:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP2:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:不修复-超出修复范围,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:应源码修复-openEuler社区发布软件包不受影响,openEuler-24.03-LTS-SP2:不修复-超出修复范围,openEuler-24.03-LTS-SP3:应源码修复-openEuler社区发布软件包不受影响,openEuler-24.03-LTS-SP4:应源码修复-openEuler社区发布软件包不受影响

请确认分析内容的准确性, 确认无误后, 您可以进行后续步骤, 否则您可以继续分析.

likedislike
openeuler-ci-bot
openeuler-ci-botCollaborators
4 days ago Comments:

经过cve-manager解析,部分分支PR未合入,如红色字体所示:

原因说明:
1.master:不受影响-漏洞代码不能被攻击者触发
2.openEuler-20.03-LTS-SP4:不修复-超出修复范围
3.openEuler-22.03-LTS-SP3:不修复-超出修复范围
4.openEuler-22.03-LTS-SP4:正常修复(PR未合入)
5.openEuler-24.03-LTS:不修复-超出修复范围
6.openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发
7.openEuler-24.03-LTS-SP1:应源码修复-openEuler社区发布软件包不受影响(PR未合入)
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:应源码修复-openEuler社区发布软件包不受影响(PR未合入)
10.openEuler-24.03-LTS-SP4:应源码修复-openEuler社区发布软件包不受影响(PR未合入)

likedislike
openeuler-ci-botopeneuler-ci-botCollaborators
4 days ago changed custom state from 待办的 to 进行中