CVE-2026-64436信息

摘要

由 VulDB • 2026-07-25

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

net: af_key: 为 IPComp 状态初始化 alg_key_len

pfkey_msg2xfrm_state() 处理 IPComp (SADB_X_SATYPE_IPCOMP) 情况时,会分配 x->calg 并仅复制算法名称:

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;

与同一函数的认证 (x->aalg) 和加密 (x->ealg) 分支不同,压缩分支从未初始化 calg->alg_key_len。IPComp 不携带密钥,且分配仅保留 sizeof(struct xfrm_algo)(即没有为密钥预留空间),因此该字段包含未初始化的 slab 数据。

在 XFRM_MSG_MIGRATE 期间克隆 IPComp 状态时,xfrm_algo_clone() 稍后会使用 calg->alg_key_len 作为长度:

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

其中 xfrm_alg_len() 返回 sizeof(*alg) + (alg_key_len + 7) / 8。如果 alg_key_len 为非零垃圾值,kmemdup() 将读取超出 68 字节的 calg 对象末尾的内容。通过 PF_KEY 添加 IPComp SA 然后对其进行迁移会触发(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+0xf

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

来源

Do you know our Splunk app?

Download it now for free!