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->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 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->calg = xfrm_algo_clone(orig->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.
CVSS Details
- CVSS 3.1 Base Score: 7.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel6.12-modules-extraUpgrade bpftool-debuginfoUpgrade kernel6.12-toolsUpgrade python3-perf-debuginfoUpgrade kernel-livepatch-6.18.39-79.141Upgrade kernel6.12-headersUpgrade kernel6.18-tools-debuginfoUpgrade bpftoolUpgrade kernel6.18-modules-extra-commonUpgrade kernel-modules-extraUpgrade kernel6.12-develUpgrade kernel6.12Upgrade kernel-develUpgrade perf6.18Upgrade kernel-debuginfo-common-aarch64Upgrade kernel-headersUpgrade python3-perf6.18Upgrade bpftool6.18Upgrade kernel-tools-debuginfoUpgrade kernel6.18Upgrade perf6.18-debuginfoUpgrade python3-perf6.12Upgrade kernel6.12-debuginfo-common-x86_64Upgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel6.12-modules-extra-commonUpgrade kernel-livepatch-6.12.100-125.179Upgrade kernel6.12-tools-develUpgrade kernel-debuginfo-common-x86_64Upgrade perf6.12Upgrade bpftool6.12-debuginfoUpgrade kernel-debuginfoUpgrade kernel-toolsUpgrade kernel6.18-debuginfo-common-x86_64Upgrade python3-perf6.18-debuginfoUpgrade kernel6.12-debuginfoUpgrade kernel-livepatch-6.1.180-225.360Upgrade kernel6.18-develUpgrade kernel6.18-debuginfoUpgrade kernel-tools-develUpgrade bpftool6.12Upgrade kernel6.18-modules-extraUpgrade kernelUpgrade microvm-kernel6.18Upgrade kernel6.12-tools-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel6.18-tools-develUpgrade perf6.12-debuginfoUpgrade bpftool6.18-debuginfoUpgrade kernel6.18-headersUpgrade python3-perfUpgrade kernel6.18-toolsUpgrade python3-perf6.12-debuginfoUpgrade perfUpgrade perf-debuginfo | Aug 18, 2026 | Jul 25, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.1Upgrade linux-6.12 | Jul 28, 2026 | Jul 28, 2026 |
| Redhat_linux | — | No solution exists | Jul 31, 2026 | Jul 25, 2026 |
| Ubuntu | — | Upgrade linux-image-aws-64k-7.0Upgrade linux-image-aws-7.0Upgrade linux-image-gcp-64kUpgrade linux-image-raspiUpgrade linux-image-azureUpgrade linux-image-raspi-realtime-7.0Upgrade linux-image-7.0.0-1018-nvidiaUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-realtime-7.0Upgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-gke-7.0Upgrade linux-image-nvidia-7.0Upgrade linux-image-7.0.0-1018-nvidia-64kUpgrade linux-image-gke-64kUpgrade linux-image-nvidia-bosUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-oem-26.04aUpgrade linux-image-7.0.0-2018-nvidia-bosUpgrade linux-image-oem-26.04Upgrade linux-image-realtime-64kUpgrade linux-image-7.0.0-1019-raspiUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-nvidia-64kUpgrade linux-image-7.0.0-1012-awsUpgrade linux-image-azure-7.0Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-generic-7.0Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-gcp-64k-7.0Upgrade linux-image-gke-64k-7.0Upgrade linux-image-generic-hwe-26.04Upgrade linux-image-ibm-7.0Upgrade linux-image-generic-64kUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-7.0.0-31-realtimeUpgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-nvidia-bos-64kUpgrade linux-image-oem-7.0Upgrade linux-image-7.0.0-31-realtime-64kUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-oracle-64kUpgrade linux-image-7.0.0-1012-aws-64kUpgrade linux-image-ibmUpgrade linux-image-7.0.0-31-generic-64kUpgrade linux-image-7.0.0-1013-ibmUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-7.0.0-2018-nvidia-bos-64kUpgrade linux-image-7.0.0-1006-gkeUpgrade linux-image-raspi-7.0Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-7.0.0-1019-raspi-realtimeUpgrade linux-image-oracle-7.0Upgrade linux-image-oracleUpgrade linux-image-generic-64k-7.0Upgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-nvidiaUpgrade linux-image-7.0.0-1013-oemUpgrade linux-image-7.0.0-1011-oracleUpgrade linux-image-7.0.0-1011-oracle-64kUpgrade linux-image-7.0.0-31-genericUpgrade linux-image-awsUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-7.0.0-1006-gke-64kUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-genericUpgrade linux-image-gcpUpgrade linux-image-virtual-7.0Upgrade linux-image-virtualUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-realtime-64k-7.0Upgrade linux-image-oem-26.04bUpgrade linux-image-realtimeUpgrade linux-image-oracle-64k-7.0Upgrade linux-image-raspi-realtimeUpgrade linux-image-gkeUpgrade linux-image-gcp-7.0Upgrade linux-image-azure-lts-26.04Upgrade linux-image-nvidia-64k-7.0Upgrade linux-image-aws-64k | Sep 14, 2026 | Sep 7, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 31, 2026 | Jul 25, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub