已关闭
CVE-2026-64436 #16727
openeuler-ci-bot创建于  7月26日关闭于  8 天前
openeuler-ci-bot
openeuler-ci-bot成员
7月26日 创建

一、漏洞信息
漏洞编号:CVE-2026-64436
漏洞归属组件:kernel
漏洞归属的版本:4.19.140,4.19.194,4.19.90,5.10.0,6.1.19,6.12.33,6.18.18,6.4.0,6.6.0
CVSS评分:
BaseScore:7.1 High
Vector:CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
漏洞简述:
In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name: x->calg = kmalloc_obj(*x->calg); if (!x->calg) { err = -ENOMEM; goto out; } strcpy(x->calg->alg_name, a->name); x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE: xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.
漏洞公开时间:2026-07-25 18:17:28
漏洞创建时间:2026-07-26 05:58:07
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2026-64436

更多参考(点击展开)
参考来源 参考链接 来源链接
https://nvd.nist.gov/vuln/detail/CVE-2026-64436
https://git.kernel.org/stable/c/273c06b81d2e902b21acc801ae18c8276c8a9b69
https://git.kernel.org/stable/c/e8417353cbd078d10531ba3928e609c84ab09e6b
https://lore.kernel.org/linux-cve-announce/2026072538-CVE-2026-64436-7414@gregkh/T
https://git.kernel.org/stable/c/d129c3177d7b1138fd5066fcc63a698b3ba415b0
https://lore.kernel.org/linux-cve-announce/2026072538-CVE-2026-64436-7414@gregkh/T/#u
https://git.kernel.org/stable/c/01b9115b55018123ef2449ac4951f89147a8428e
https://git.kernel.org/stable/c/6de2a650917bedaaefd65b17cede83c5e2c1dedd
https://advisory.echohq.com/cve/CVE-2026-64436
https://bugzilla.redhat.com/show_bug.cgi?id=2507181
https://git.kernel.org/stable/c/58e82fc3dedb57b1432292504415b224fd2d6acb
https://git.kernel.org/stable/c/3f63d1752d90c0e28be931a48ab5d89bc97d637d
https://security-tracker.debian.org/tracker/CVE-2026-64436
https://git.kernel.org/stable/c/cea34abc94b0a81e3a8b5cfb41cf45af37c2c67e
https://www.cve.org/CVERecord?id=CVE-2026-64436

漏洞分析指导链接:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
七彩瞬析开源风险感知平台
漏洞补丁信息:

详情(点击展开)
影响的包 修复版本 修复补丁 问题引入补丁 来源
gregkh/linux https://git.kernel.org/stable/c/58e82fc3dedb57b1432292504415b224fd2d6acb ljqc
gregkh/linux https://git.kernel.org/stable/c/01b9115b55018123ef2449ac4951f89147a8428e ljqc
gregkh/linux https://git.kernel.org/stable/c/3f63d1752d90c0e28be931a48ab5d89bc97d637d ljqc
gregkh/linux https://git.kernel.org/stable/c/273c06b81d2e902b21acc801ae18c8276c8a9b69 ljqc
gregkh/linux https://git.kernel.org/stable/c/6de2a650917bedaaefd65b17cede83c5e2c1dedd ljqc
gregkh/linux https://git.kernel.org/stable/c/e8417353cbd078d10531ba3928e609c84ab09e6b ljqc
gregkh/linux https://git.kernel.org/stable/c/cea34abc94b0a81e3a8b5cfb41cf45af37c2c67e ljqc
gregkh/linux https://git.kernel.org/stable/c/d129c3177d7b1138fd5066fcc63a698b3ba415b0 ljqc
https://git.kernel.org/stable/c/273c06b81d2e902b21acc801ae18c8276c8a9b69 cvelistv5
https://git.kernel.org/stable/c/e8417353cbd078d10531ba3928e609c84ab09e6b cvelistv5
https://git.kernel.org/stable/c/d129c3177d7b1138fd5066fcc63a698b3ba415b0 cvelistv5
https://git.kernel.org/stable/c/01b9115b55018123ef2449ac4951f89147a8428e cvelistv5
https://git.kernel.org/stable/c/6de2a650917bedaaefd65b17cede83c5e2c1dedd cvelistv5
https://git.kernel.org/stable/c/58e82fc3dedb57b1432292504415b224fd2d6acb cvelistv5
https://git.kernel.org/stable/c/3f63d1752d90c0e28be931a48ab5d89bc97d637d cvelistv5
https://git.kernel.org/stable/c/cea34abc94b0a81e3a8b5cfb41cf45af37c2c67e cvelistv5

二、漏洞分析结构反馈
影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
openEuler评分:
7.1
Vector:CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
受影响版本排查(受影响/不受影响):
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):不受影响
8.openEuler-22.03-LTS-SP3(5.10.0):受影响
9.openEuler-24.03-LTS(6.6.0):受影响
10.openEuler-24.03-LTS-SP2(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):否
8.openEuler-22.03-LTS-SP3(5.10.0):否
9.openEuler-24.03-LTS(6.6.0):否
10.openEuler-24.03-LTS-SP2(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):不受影响-漏洞代码不存在
8.openEuler-22.03-LTS-SP3(5.10.0):不修复-超出修复范围
9.openEuler-24.03-LTS(6.6.0):不修复-超出修复范围
10.openEuler-24.03-LTS-SP2(6.6.0):不修复-超出修复范围

likedislike
openeuler-ci-botopeneuler-ci-bot成员
7月26日 添加了label:CVE/UNFIXED
openeuler-ci-bot
openeuler-ci-bot成员
7月26日 评论:

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


影响性分析说明:

openEuler评分: (评分和向量)

受影响版本排查(受影响/不受影响):
1.master(6.18.18):
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.18):
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.18):
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社区安全委员会例会进行说明备案。
【影响性分析】中应包含不发布修复的详细说明、特殊情况还应有安委会会议纪要。
不受影响 不受影响-组件不存在 软件不受影响,因为易受攻击的组件不在产品中。
不受影响 不受影响-已有内置的内联控制或缓解措施 内置的内联控制或缓解措施可防止攻击者利用漏洞
不受影响 不受影响-漏洞代码不能被攻击者触发 易受攻击的组件存在,并且该组件包含易受攻击的代码。但是,易受攻击的代码的使用方式使得攻击者无法进行任何预期的攻击。
不受影响 不受影响-漏洞代码不在执行路径 易受影响的代码在执行过程中不可访问,包括产品的非预期状态。产品不使用也不执行的组件。
不受影响 不受影响-漏洞代码不存在 产品不受影响,因为漏洞背后的代码在产品中不存在。与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
devstation-robot
devstation-robot
7月26日 评论:

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

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

  1. 分支影响分析

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

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

branch: OLK-6.6 OLK-5.10
name: dev
email: dev@devstation.com
backport-engine: mystique
  • 说明:
    • branch: 需要创建 PR 的目标分支列表,例如 OLK-6.6 OLK-5.10
    • name: PR 签名人姓名(如责任人或安全负责人);
    • email: PR 签名人邮箱;
    • backport-engine(可选): 回移植引擎,可设为 mystique 切换迁移方案,不填则使用默认引擎;

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

provided by DevStation.

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
7月26日 评论:
参考网址 关联pr 状态 补丁链接
https://www.opencve.io/cve/CVE-2026-64436NoneNonehttps://git.kernel.org/stable/c/cea34abc94b0a81e3a8b5cfb41cf45af37c2c67e
https://git.kernel.org/stable/c/d129c3177d7b1138fd5066fcc63a698b3ba415b0
https://git.kernel.org/stable/c/6de2a650917bedaaefd65b17cede83c5e2c1dedd
https://git.kernel.org/stable/c/01b9115b55018123ef2449ac4951f89147a8428e
https://git.kernel.org/stable/c/58e82fc3dedb57b1432292504415b224fd2d6acb
https://git.kernel.org/stable/c/e8417353cbd078d10531ba3928e609c84ab09e6b
https://git.kernel.org/stable/c/273c06b81d2e902b21acc801ae18c8276c8a9b69
https://git.kernel.org/stable/c/3f63d1752d90c0e28be931a48ab5d89bc97d637d
https://security-tracker.debian.org/tracker/CVE-2026-64436NoneNonehttps://git.kernel.org/linus/d129c3177d7b1138fd5066fcc63a698b3ba415b0
http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2026-64436
https://nvd.nist.gov/vuln/detail/CVE-2026-64436NoneNonehttps://git.kernel.org/stable/c/cea34abc94b0a81e3a8b5cfb41cf45af37c2c67e
https://git.kernel.org/stable/c/d129c3177d7b1138fd5066fcc63a698b3ba415b0
https://git.kernel.org/stable/c/6de2a650917bedaaefd65b17cede83c5e2c1dedd
https://git.kernel.org/stable/c/01b9115b55018123ef2449ac4951f89147a8428e
https://git.kernel.org/stable/c/58e82fc3dedb57b1432292504415b224fd2d6acb
https://git.kernel.org/stable/c/e8417353cbd078d10531ba3928e609c84ab09e6b
https://git.kernel.org/stable/c/273c06b81d2e902b21acc801ae18c8276c8a9b69
https://git.kernel.org/stable/c/3f63d1752d90c0e28be931a48ab5d89bc97d637d
https://ubuntu.com/security/CVE-2026-64436NoneNonehttps://discourse.ubuntu.com/c/project

说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用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-botopeneuler-ci-bot成员
7月26日 添加了label:sig/Kernel
openeuler-ci-bot
openeuler-ci-bot成员
7月26日 评论:

Welcome To openEuler Community

Hey @openeuler-ci-bot , 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.

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, @allen-shi, @baratta, @bibo_mao, @caixu-blue, @chen-jun-hw, @chenjiesong, @chenjunxin1992, @chenke2026, @chiqijun, @chriszjh, @duanqiangwen, @eingesch, @fangfeng123, @fanghaiqinghw, @gaojuxin09, @gouhao2022, @guohaocs2c, @guzitao, @hanjunguo, @hanliyang, @hellotcc, @henryze, @hewanhan, @hjx_gitff, @hongbo-lee, @hongwu-wang, @htforge, @hu-chunzhi, @hunan4222, @jackknight, @jerry_lilijun, @jiayi0118, @junlong-zheng, @juntianlinux, @kailiu42, @kaitiandu, @kazero00, @kevinzhu1, @kile2009, @klmengkd, @koishimind, @kongzizaixian, @kylin-mayukun, @leoliu-oc, @li-huisong, @linan888, @linyunsheng, @liulongfang, @liyihang0226, @lostway1, @lujialin2, @mao-hongbo, @markyuan4ta21, @mawupeng, @mingqian218472, @mingrui-liu, @mufengyan, @pigalsofine, @robinorg, @rock_hw, @sanglipeng, @shu-shengming, @shuaijiakun, @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, @zhangyi089, @zhujianwei001, @zichengqu, @zouyipeng, @zqiao216 .

likedislike
hulk-ci-bot成员
7月26日 评论:

CVE-2026-64436

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

net: af_key: initialize alg_key_len for IPComp states

pfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case by
allocating x->calg and copying only the algorithm name:

x-&gt;calg = kmalloc_obj(*x-&gt;calg);
if (!x-&gt;calg) {
	err = -ENOMEM;
	goto out;
}
strcpy(x-&gt;calg-&gt;alg_name, a-&gt;name);
x-&gt;props.calgo = sa-&gt;sadb_sa_encrypt;

Unlike the authentication (x->aalg) and encryption (x->ealg) branches of
the same function, the compression branch never initializes
calg->alg_key_len. IPComp carries no key and the allocation only
reserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the field
is left containing uninitialized slab data.

calg->alg_key_len is later used as a length by xfrm_algo_clone() when an
IPComp state is cloned during XFRM_MSG_MIGRATE:

xfrm_state_migrate()
  xfrm_state_clone_and_setup()
    x-&gt;calg = xfrm_algo_clone(orig-&gt;calg);
      kmemdup(orig, xfrm_alg_len(orig));

where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. With
a non-zero garbage alg_key_len, kmemdup() reads past the end of the
68-byte calg object. Adding an IPComp SA via PF_KEY and then migrating
it triggers (net-next, KASAN, init_on_alloc=0):

BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60
Read of size 4164 at addr ff11000025a74980 by task diag2/9287
CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1
Call Trace:
<TASK>
dump_stack_lvl+0x10e/0x1f0
print_report+0xf7/0x600
kasan_report+0xe4/0x120
kasan_check_range+0x105/0x1b0
__asan_memcpy+0x23/0x60
kmemdup_noprof+0x44/0x60
xfrm_state_migrate+0x70a/0x1da0
xfrm_migrate+0x753/0x18a0
xfrm_do_migrate+0xb47/0xf10
xfrm_user_rcv_msg+0x411/0xb50
netlink_rcv_skb+0x158/0x420
xfrm_netlink_rcv+0x71/0x90
netlink_unicast+0x584/0x850
netlink_sendmsg+0x8b0/0xdc0
____sys_sendmsg+0x9f7/0xb90
___sys_sendmsg+0x134/0x1d0
__sys_sendmsg+0x16d/0x220
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>

Allocated by task 9287:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0xaa/0xb0
pfkey_add+0x2652/0x2ea0
pfkey_process+0x6d0/0x830
pfkey_sendmsg+0x42c/0x850
__sys_sendto+0x461/0x4b0
__x64_sys_sendto+0xe0/0x1c0
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ff11000025a74980
which belongs to the cache kmalloc-96 of size 96
The buggy address is located 0 bytes inside of
allocated 68-byte region [ff11000025a74980, ff11000025a749c4)

Depending on the uninitialized value the same field can instead request
an oversized kmemdup() allocation and make the migration clone fail.

The XFRM netlink path is not affected: verify_one_alg() rejects an
XFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added via
XFRM_MSG_NEWSA is always self-consistent.

Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.

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

openEuler评分:(评分和向量)
3.9
CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:L

受影响版本排查(受影响/不受影响):
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:暂不修复-漏洞仍在分析中
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:暂不修复-漏洞仍在分析中
10.openEuler-24.03-LTS-SP4:暂不修复-漏洞仍在分析中

likedislike
openeuler-ci-botopeneuler-ci-bot成员
7月26日 修改了issue 的描述
openeuler-ci-bot
openeuler-ci-bot成员
7月26日 评论:

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

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
已分析 2.openEulerScore 3.9
已分析 3.openEulerVector AV:L/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:L
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP2:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP2:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:漏洞仍在分析中,openEuler-22.03-LTS-SP4:漏洞仍在分析中,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:漏洞仍在分析中,openEuler-24.03-LTS-SP3:漏洞仍在分析中,openEuler-24.03-LTS-SP4:漏洞仍在分析中,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-SP2:不修复-超出修复范围

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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
7月26日 issue状态由 待办的 改变为 进行中
openeuler-ci-botopeneuler-ci-bot成员
7月27日 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
7月27日 修改了issue 的描述
hulk-ci-bot成员
7月27日 评论:

CVE-2026-64436

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

net: af_key: initialize alg_key_len for IPComp states

pfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case by
allocating x->calg and copying only the algorithm name:

x-&gt;calg = kmalloc_obj(*x-&gt;calg);
if (!x-&gt;calg) {
	err = -ENOMEM;
	goto out;
}
strcpy(x-&gt;calg-&gt;alg_name, a-&gt;name);
x-&gt;props.calgo = sa-&gt;sadb_sa_encrypt;

Unlike the authentication (x->aalg) and encryption (x->ealg) branches of
the same function, the compression branch never initializes
calg->alg_key_len. IPComp carries no key and the allocation only
reserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the field
is left containing uninitialized slab data.

calg->alg_key_len is later used as a length by xfrm_algo_clone() when an
IPComp state is cloned during XFRM_MSG_MIGRATE:

xfrm_state_migrate()
  xfrm_state_clone_and_setup()
    x-&gt;calg = xfrm_algo_clone(orig-&gt;calg);
      kmemdup(orig, xfrm_alg_len(orig));

where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. With
a non-zero garbage alg_key_len, kmemdup() reads past the end of the
68-byte calg object. Adding an IPComp SA via PF_KEY and then migrating
it triggers (net-next, KASAN, init_on_alloc=0):

BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60
Read of size 4164 at addr ff11000025a74980 by task diag2/9287
CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1
Call Trace:
<TASK>
dump_stack_lvl+0x10e/0x1f0
print_report+0xf7/0x600
kasan_report+0xe4/0x120
kasan_check_range+0x105/0x1b0
__asan_memcpy+0x23/0x60
kmemdup_noprof+0x44/0x60
xfrm_state_migrate+0x70a/0x1da0
xfrm_migrate+0x753/0x18a0
xfrm_do_migrate+0xb47/0xf10
xfrm_user_rcv_msg+0x411/0xb50
netlink_rcv_skb+0x158/0x420
xfrm_netlink_rcv+0x71/0x90
netlink_unicast+0x584/0x850
netlink_sendmsg+0x8b0/0xdc0
____sys_sendmsg+0x9f7/0xb90
___sys_sendmsg+0x134/0x1d0
__sys_sendmsg+0x16d/0x220
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>

Allocated by task 9287:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0xaa/0xb0
pfkey_add+0x2652/0x2ea0
pfkey_process+0x6d0/0x830
pfkey_sendmsg+0x42c/0x850
__sys_sendto+0x461/0x4b0
__x64_sys_sendto+0xe0/0x1c0
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ff11000025a74980
which belongs to the cache kmalloc-96 of size 96
The buggy address is located 0 bytes inside of
allocated 68-byte region [ff11000025a74980, ff11000025a749c4)

Depending on the uninitialized value the same field can instead request
an oversized kmemdup() allocation and make the migration clone fail.

The XFRM netlink path is not affected: verify_one_alg() rejects an
XFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added via
XFRM_MSG_NEWSA is always self-consistent.

Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.

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

openEuler评分:(评分和向量)
7.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/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:暂不修复-漏洞仍在分析中
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:暂不修复-漏洞仍在分析中
10.openEuler-24.03-LTS-SP4:暂不修复-漏洞仍在分析中

likedislike
openeuler-ci-botopeneuler-ci-bot成员
7月27日 修改了issue 的描述
openeuler-ci-bot
openeuler-ci-bot成员
7月27日 评论:

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

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
已分析 2.openEulerScore 7.1
已分析 3.openEulerVector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP2:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP2:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:不修复-超出修复范围,openEuler-22.03-LTS-SP4:漏洞仍在分析中,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:漏洞仍在分析中,openEuler-24.03-LTS-SP3:漏洞仍在分析中,openEuler-24.03-LTS-SP4:漏洞仍在分析中,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-SP2:不修复-超出修复范围

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

likedislike
hulk-ci-bot成员
7月27日 评论:

CVE-2026-64436

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

net: af_key: initialize alg_key_len for IPComp states

pfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case by
allocating x->calg and copying only the algorithm name:

x-&gt;calg = kmalloc_obj(*x-&gt;calg);
if (!x-&gt;calg) {
	err = -ENOMEM;
	goto out;
}
strcpy(x-&gt;calg-&gt;alg_name, a-&gt;name);
x-&gt;props.calgo = sa-&gt;sadb_sa_encrypt;

Unlike the authentication (x->aalg) and encryption (x->ealg) branches of
the same function, the compression branch never initializes
calg->alg_key_len. IPComp carries no key and the allocation only
reserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the field
is left containing uninitialized slab data.

calg->alg_key_len is later used as a length by xfrm_algo_clone() when an
IPComp state is cloned during XFRM_MSG_MIGRATE:

xfrm_state_migrate()
  xfrm_state_clone_and_setup()
    x-&gt;calg = xfrm_algo_clone(orig-&gt;calg);
      kmemdup(orig, xfrm_alg_len(orig));

where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. With
a non-zero garbage alg_key_len, kmemdup() reads past the end of the
68-byte calg object. Adding an IPComp SA via PF_KEY and then migrating
it triggers (net-next, KASAN, init_on_alloc=0):

BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60
Read of size 4164 at addr ff11000025a74980 by task diag2/9287
CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1
Call Trace:
<TASK>
dump_stack_lvl+0x10e/0x1f0
print_report+0xf7/0x600
kasan_report+0xe4/0x120
kasan_check_range+0x105/0x1b0
__asan_memcpy+0x23/0x60
kmemdup_noprof+0x44/0x60
xfrm_state_migrate+0x70a/0x1da0
xfrm_migrate+0x753/0x18a0
xfrm_do_migrate+0xb47/0xf10
xfrm_user_rcv_msg+0x411/0xb50
netlink_rcv_skb+0x158/0x420
xfrm_netlink_rcv+0x71/0x90
netlink_unicast+0x584/0x850
netlink_sendmsg+0x8b0/0xdc0
____sys_sendmsg+0x9f7/0xb90
___sys_sendmsg+0x134/0x1d0
__sys_sendmsg+0x16d/0x220
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>

Allocated by task 9287:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0xaa/0xb0
pfkey_add+0x2652/0x2ea0
pfkey_process+0x6d0/0x830
pfkey_sendmsg+0x42c/0x850
__sys_sendto+0x461/0x4b0
__x64_sys_sendto+0xe0/0x1c0
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ff11000025a74980
which belongs to the cache kmalloc-96 of size 96
The buggy address is located 0 bytes inside of
allocated 68-byte region [ff11000025a74980, ff11000025a749c4)

Depending on the uninitialized value the same field can instead request
an oversized kmemdup() allocation and make the migration clone fail.

The XFRM netlink path is not affected: verify_one_alg() rejects an
XFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added via
XFRM_MSG_NEWSA is always self-consistent.

Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.

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

openEuler评分:(评分和向量)
7.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/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:暂不修复-漏洞仍在分析中
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:暂不修复-漏洞仍在分析中
10.openEuler-24.03-LTS-SP4:暂不修复-漏洞仍在分析中

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
7月27日 评论:

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

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
已分析 2.openEulerScore 7.1
已分析 3.openEulerVector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP2:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP2:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:不修复-超出修复范围,openEuler-22.03-LTS-SP4:漏洞仍在分析中,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:漏洞仍在分析中,openEuler-24.03-LTS-SP3:漏洞仍在分析中,openEuler-24.03-LTS-SP4:漏洞仍在分析中,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-SP2:不修复-超出修复范围

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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
7月28日 修改了issue 的描述
Zzhangxiaoxu
7月28日 关联了pull request:[OLK-6.6] Fix CVE-2026-64436
Llixiasong
7月30日 关联了pull request:Fix CVE-2026-64436
Llixiasong
7月30日 关联了pull request:Fix CVE-2026-64436
hulk-ci-bot成员
27 天前 评论:

CVE-2026-64436

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

net: af_key: initialize alg_key_len for IPComp states

pfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case by
allocating x->calg and copying only the algorithm name:

x-&gt;calg = kmalloc_obj(*x-&gt;calg);
if (!x-&gt;calg) {
	err = -ENOMEM;
	goto out;
}
strcpy(x-&gt;calg-&gt;alg_name, a-&gt;name);
x-&gt;props.calgo = sa-&gt;sadb_sa_encrypt;

Unlike the authentication (x->aalg) and encryption (x->ealg) branches of
the same function, the compression branch never initializes
calg->alg_key_len. IPComp carries no key and the allocation only
reserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the field
is left containing uninitialized slab data.

calg->alg_key_len is later used as a length by xfrm_algo_clone() when an
IPComp state is cloned during XFRM_MSG_MIGRATE:

xfrm_state_migrate()
  xfrm_state_clone_and_setup()
    x-&gt;calg = xfrm_algo_clone(orig-&gt;calg);
      kmemdup(orig, xfrm_alg_len(orig));

where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. With
a non-zero garbage alg_key_len, kmemdup() reads past the end of the
68-byte calg object. Adding an IPComp SA via PF_KEY and then migrating
it triggers (net-next, KASAN, init_on_alloc=0):

BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60
Read of size 4164 at addr ff11000025a74980 by task diag2/9287
CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1
Call Trace:
<TASK>
dump_stack_lvl+0x10e/0x1f0
print_report+0xf7/0x600
kasan_report+0xe4/0x120
kasan_check_range+0x105/0x1b0
__asan_memcpy+0x23/0x60
kmemdup_noprof+0x44/0x60
xfrm_state_migrate+0x70a/0x1da0
xfrm_migrate+0x753/0x18a0
xfrm_do_migrate+0xb47/0xf10
xfrm_user_rcv_msg+0x411/0xb50
netlink_rcv_skb+0x158/0x420
xfrm_netlink_rcv+0x71/0x90
netlink_unicast+0x584/0x850
netlink_sendmsg+0x8b0/0xdc0
____sys_sendmsg+0x9f7/0xb90
___sys_sendmsg+0x134/0x1d0
__sys_sendmsg+0x16d/0x220
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>

Allocated by task 9287:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0xaa/0xb0
pfkey_add+0x2652/0x2ea0
pfkey_process+0x6d0/0x830
pfkey_sendmsg+0x42c/0x850
__sys_sendto+0x461/0x4b0
__x64_sys_sendto+0xe0/0x1c0
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ff11000025a74980
which belongs to the cache kmalloc-96 of size 96
The buggy address is located 0 bytes inside of
allocated 68-byte region [ff11000025a74980, ff11000025a749c4)

Depending on the uninitialized value the same field can instead request
an oversized kmemdup() allocation and make the migration clone fail.

The XFRM netlink path is not affected: verify_one_alg() rejects an
XFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added via
XFRM_MSG_NEWSA is always self-consistent.

Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.

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

openEuler评分:(评分和向量)
7.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/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:不受影响-漏洞代码不存在
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:不受影响-漏洞代码不存在
10.openEuler-24.03-LTS-SP4:不受影响-漏洞代码不存在

likedislike
openeuler-ci-botopeneuler-ci-bot成员
27 天前 修改了issue 的描述
openeuler-ci-bot
openeuler-ci-bot成员
27 天前 评论:

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

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
已分析 2.openEulerScore 7.1
已分析 3.openEulerVector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:不受影响,openEuler-24.03-LTS-SP3:不受影响,openEuler-24.03-LTS-SP4:不受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP2:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP2:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:不修复-超出修复范围,openEuler-22.03-LTS-SP4:漏洞仍在分析中,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:不受影响-漏洞代码不存在,openEuler-24.03-LTS-SP3:不受影响-漏洞代码不存在,openEuler-24.03-LTS-SP4:不受影响-漏洞代码不存在,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-SP2:不修复-超出修复范围

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

likedislike
hulk-ci-bot成员
14 天前 评论:

CVE-2026-64436

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

net: af_key: initialize alg_key_len for IPComp states

pfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case by
allocating x->calg and copying only the algorithm name:

x-&gt;calg = kmalloc_obj(*x-&gt;calg);
if (!x-&gt;calg) {
	err = -ENOMEM;
	goto out;
}
strcpy(x-&gt;calg-&gt;alg_name, a-&gt;name);
x-&gt;props.calgo = sa-&gt;sadb_sa_encrypt;

Unlike the authentication (x->aalg) and encryption (x->ealg) branches of
the same function, the compression branch never initializes
calg->alg_key_len. IPComp carries no key and the allocation only
reserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the field
is left containing uninitialized slab data.

calg->alg_key_len is later used as a length by xfrm_algo_clone() when an
IPComp state is cloned during XFRM_MSG_MIGRATE:

xfrm_state_migrate()
  xfrm_state_clone_and_setup()
    x-&gt;calg = xfrm_algo_clone(orig-&gt;calg);
      kmemdup(orig, xfrm_alg_len(orig));

where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. With
a non-zero garbage alg_key_len, kmemdup() reads past the end of the
68-byte calg object. Adding an IPComp SA via PF_KEY and then migrating
it triggers (net-next, KASAN, init_on_alloc=0):

BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60
Read of size 4164 at addr ff11000025a74980 by task diag2/9287
CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1
Call Trace:
<TASK>
dump_stack_lvl+0x10e/0x1f0
print_report+0xf7/0x600
kasan_report+0xe4/0x120
kasan_check_range+0x105/0x1b0
__asan_memcpy+0x23/0x60
kmemdup_noprof+0x44/0x60
xfrm_state_migrate+0x70a/0x1da0
xfrm_migrate+0x753/0x18a0
xfrm_do_migrate+0xb47/0xf10
xfrm_user_rcv_msg+0x411/0xb50
netlink_rcv_skb+0x158/0x420
xfrm_netlink_rcv+0x71/0x90
netlink_unicast+0x584/0x850
netlink_sendmsg+0x8b0/0xdc0
____sys_sendmsg+0x9f7/0xb90
___sys_sendmsg+0x134/0x1d0
__sys_sendmsg+0x16d/0x220
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>

Allocated by task 9287:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0xaa/0xb0
pfkey_add+0x2652/0x2ea0
pfkey_process+0x6d0/0x830
pfkey_sendmsg+0x42c/0x850
__sys_sendto+0x461/0x4b0
__x64_sys_sendto+0xe0/0x1c0
do_syscall_64+0x116/0x7d0
entry_SYSCALL_64_after_hwframe+0x77/0x7f

The buggy address belongs to the object at ff11000025a74980
which belongs to the cache kmalloc-96 of size 96
The buggy address is located 0 bytes inside of
allocated 68-byte region [ff11000025a74980, ff11000025a749c4)

Depending on the uninitialized value the same field can instead request
an oversized kmemdup() allocation and make the migration clone fail.

The XFRM netlink path is not affected: verify_one_alg() rejects an
XFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added via
XFRM_MSG_NEWSA is always self-consistent.

Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.

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

openEuler评分:(评分和向量)
7.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/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:不受影响-漏洞代码不存在
8.openEuler-24.03-LTS-SP2:不修复-超出修复范围
9.openEuler-24.03-LTS-SP3:不受影响-漏洞代码不存在
10.openEuler-24.03-LTS-SP4:不受影响-漏洞代码不存在

likedislike
openeuler-ci-botopeneuler-ci-bot成员
14 天前 修改了issue 的描述
openeuler-ci-bot
openeuler-ci-bot成员
14 天前 评论:

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

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
已分析 2.openEulerScore 7.1
已分析 3.openEulerVector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:不受影响,openEuler-24.03-LTS-SP3:不受影响,openEuler-24.03-LTS-SP4:不受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP2:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP2:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:不修复-超出修复范围,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:不受影响-漏洞代码不存在,openEuler-24.03-LTS-SP3:不受影响-漏洞代码不存在,openEuler-24.03-LTS-SP4:不受影响-漏洞代码不存在,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-SP2:不修复-超出修复范围

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

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
14 天前 评论:

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

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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
13 天前 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
13 天前 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
8 天前 issue状态由 进行中 改变为 已完成
openeuler-ci-botopeneuler-ci-bot成员
8 天前 关闭了 issue
openeuler-ci-botopeneuler-ci-bot成员
8 天前 删除了label:CVE/UNFIXED
openeuler-ci-botopeneuler-ci-bot成员
8 天前 添加了label:CVE/FIXED
Tengda Wu
Tengda Wu成员
7 天前 评论:

/check-issue

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
7 天前 评论:

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

状态 分析项目 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:net: af_key: initialize alg_key_len for IPComp statespfkey_msg2xfrm_state() handles the IPComp (SADB_X_SATYPE_IPCOMP) case byallocating x->calg and copying only the algorithm name:x->calg = kmalloc_obj(*x->calg);if (!x->calg) {err = -ENOMEM;goto out;}strcpy(x->calg->alg_name, a->name);x->props.calgo = sa->sadb_sa_encrypt;Unlike the authentication (x->aalg) and encryption (x->ealg) branches ofthe same function, the compression branch never initializescalg->alg_key_len. IPComp carries no key and the allocation onlyreserves sizeof(struct xfrm_algo) (i.e. no room for a key), so the fieldis left containing uninitialized slab data.calg->alg_key_len is later used as a length by xfrm_algo_clone() when anIPComp state is cloned during XFRM_MSG_MIGRATE:xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig));where xfrm_alg_len() returns sizeof(*alg) + (alg_key_len + 7) / 8. Witha non-zero garbage alg_key_len, kmemdup() reads past the end of the68-byte calg object. Adding an IPComp SA via PF_KEY and then migratingit triggers (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4)Depending on the uninitialized value the same field can instead requestan oversized kmemdup() allocation and make the migration clone fail.The XFRM netlink path is not affected: verify_one_alg() rejects anXFRMA_ALG_COMP attribute shorter than xfrm_alg_len(), so a calg added viaXFRM_MSG_NEWSA is always self-consistent.Initialize calg->alg_key_len to 0, matching the aalg/ealg branches.The Linux kernel CVE team has assigned CVE-2026-64436 to this issue.
已分析 2.openEulerScore 7.1
已分析 3.openEulerVector AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
已分析 4.受影响版本排查 master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:不受影响,openEuler-24.03-LTS-SP1:不受影响,openEuler-24.03-LTS-SP3:不受影响,openEuler-24.03-LTS-SP4:不受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP2:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP2:否
已分析 6.原因说明 master:不受影响-漏洞代码不能被攻击者触发,openEuler-20.03-LTS-SP4:不修复-超出修复范围,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发,openEuler-24.03-LTS-SP1:不受影响-漏洞代码不存在,openEuler-24.03-LTS-SP3:不受影响-漏洞代码不存在,openEuler-24.03-LTS-SP4:不受影响-漏洞代码不存在,openEuler-22.03-LTS-SP3:不修复-超出修复范围,openEuler-24.03-LTS:不修复-超出修复范围,openEuler-24.03-LTS-SP2:不修复-超出修复范围

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

likedislike