In the Linux kernel, the following vulnerability has been resolved:
xfrm: defensively unhash xfrm_state lists in __xfrm_state_delete
KASAN reproduces a slab-use-after-free in __xfrm_state_delete()'s hlist_del_rcu calls under syzkaller load on linux-6.12.y stable (reproduced on 6.12.47, also reachable via the same code path on torvalds/master and on the ipsec tree). Nine unique signatures cluster in the xfrm_state lifecycle, the load-bearing one being:
BUG: KASAN: slab-use-after-free in __hlist_del include/linux/list.h:990 [inline] BUG: KASAN: slab-use-after-free in hlist_del_rcu include/linux/rculist.h:516 [inline] BUG: KASAN: slab-use-after-free in __xfrm_state_delete net/xfrm/xfrm_state.c Write of size 8 at addr ffff8881198bcb70 by task kworker/u8:9/435
Workqueue: netns cleanup_net Call Trace: __hlist_del / hlist_del_rcu __xfrm_state_delete xfrm_state_delete xfrm_state_flush xfrm_state_fini ops_exit_list cleanup_net
The other observed signatures hit the same slab object from __xfrm_state_lookup, xfrm_alloc_spi, __xfrm_state_insert and an OOB write variant of __xfrm_state_delete, all on the byseq/byspi hash chains.
__xfrm_state_delete() guards its byseq and byspi unhashes with value-based predicates:
if (x->km.seq) hlist_del_rcu(&x->byseq); if (x->id.spi) hlist_del_rcu(&x->byspi);
while everywhere else in the file (e.g. state_cache, state_cache_input) the safer hlist_unhashed() check is used. xfrm_alloc_spi() sets x->id.spi = newspi inside xfrm_state_lock and then immediately inserts into byspi, but a path that observes x->id.spi != 0 outside of xfrm_state_lock can still skip-or-hit the byspi unhash inconsistently with whether x is actually on the list. The same holds for x->km.seq versus byseq, and the bydst/bysrc unhashes have no predicate at all, so a second __xfrm_state_delete() on the same object writes through LIST_POISON pprev.
The defensive change here:
- Use hlist_del_init_rcu() instead of hlist_del_rcu() on bydst, bysrc, byseq and byspi so a second deletion is a no-op rather than a write through LIST_POISON pprev. The byseq/byspi nodes are already initialised in xfrm_state_alloc(). - Test hlist_unhashed() rather than the value predicate for byseq/byspi, so the unhash decision tracks list state rather than mutable scalar fields.
Empirical verification: applied this patch on top of v6.12.47, rebuilt, and re-ran the same syzkaller harness for 1h16m on a previously-crashy configuration that produced ~100 hits each of slab-use-after-free Read in xfrm_alloc_spi / Read in __xfrm_state_lookup / Write in __xfrm_state_delete. After the patch, 7.1M execs across 32 VMs at ~1550 exec/sec produced zero xfrm_state UAF/OOB hits. /proc/slabinfo confirms the xfrm_state slab is actively allocated and freed during the run (~143 KiB resident), so the fuzzer is still exercising those code paths -- they just no longer crash.
Reproduction:
- Linux 6.12.47 x86_64 + KASAN_GENERIC + KASAN_INLINE + KCOV - syzkaller @ 746545b8b1e4c3a128db8652b340d3df90ce61db - 32 QEMU/KVM VMs x 2 vCPU on AWS c5.metal bare metal - 9 unique signatures collected in ~9h, all within xfrm_state lifecycle
CVSS Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-64k-debug-coreUpgrade kernel-64k-coreUpgrade kernel-rt-64k-debug-modulesUpgrade kernel-64kUpgrade kernel-rt-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-coreUpgrade kernel-64k-debug-modulesUpgrade kernel-rt-debugUpgrade kernel-rt-64kUpgrade kernelUpgrade kernel-debug-modules-coreUpgrade kernel-rt-64k-modules-coreUpgrade kernel-rt-64k-debugUpgrade kernel-rt-develUpgrade kernel-rt-64k-develUpgrade kernel-debug-modulesUpgrade kernel-64k-modulesUpgrade kernel-rt-64k-debug-develUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-64k-coreUpgrade kernel-64k-debug-develUpgrade kernel-cross-headersUpgrade kernel-tools-libsUpgrade kernel-rt-64k-debug-modules-extraUpgrade kernel-64k-debug-coreUpgrade python3-perfUpgrade kernel-tools-libs-develUpgrade bpftoolUpgrade kernel-rt-debug-coreUpgrade kernel-rt-64k-modules-extraUpgrade kernel-debug-modules-extraUpgrade rtlaUpgrade kernel-zfcpdump-develUpgrade kernel-64k-modules-coreUpgrade kernel-rt-64k-modulesUpgrade kernel-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-64k-debug-modules-coreUpgrade kernel-zfcpdumpUpgrade kernel-modules-coreUpgrade kernel-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-64k-debugUpgrade kernel-uki-virt-addonsUpgrade rvUpgrade kernel-64k-debug-modules-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-modulesUpgrade kernel-rt-debug-modules-coreUpgrade kernel-64k-debug-modules-extraUpgrade kernel-64k-modules-extraUpgrade kernel-debug-develUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-rt-modulesUpgrade kernel-uki-virtUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-headersUpgrade kernel-debug-uki-virtUpgrade kernel-debugUpgrade kernel-toolsUpgrade kernel-zfcpdump-modulesUpgrade libperfUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-debug-coreUpgrade kernel-rt-modules-coreUpgrade kernel-develUpgrade kernel-64k-develUpgrade kernel-64k-devel-matchedUpgrade kernel-devel-matchedUpgrade kernel-rtUpgrade kernel-docUpgrade perf | Jul 9, 2026 | Jul 6, 2026 |
| Amazon Linux Ami 2 | — | Upgrade perfUpgrade kernel-debuginfoUpgrade kernel-headersUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade perf-debuginfoUpgrade kernel-develUpgrade kernel-toolsUpgrade kernel-livepatch-5.15.210-148.245Upgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade python-perf-debuginfoUpgrade kernelUpgrade kernel-livepatch-5.10.260-259.1053Upgrade python-perf | Jul 21, 2026 | Jul 21, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel-headersUpgrade kernel6.18-tools-debuginfoUpgrade python3-perf6.18Upgrade bpftool6.18-debuginfoUpgrade perf6.18-debuginfoUpgrade kernel6.18-tools-develUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade kernelUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel-modules-extra-commonUpgrade perf6.18Upgrade python3-perf6.18-debuginfoUpgrade bpftool6.18Upgrade kernel6.18-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-tools-develUpgrade kernel6.18-debuginfo-common-aarch64Upgrade perfUpgrade kernel6.18-headersUpgrade python3-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.18.30-61.116Upgrade perf-debuginfoUpgrade kernel6.18-modules-extraUpgrade kernel6.18Upgrade kernel6.18-toolsUpgrade kernel6.18-modules-extra-commonUpgrade kernel-develUpgrade kernel-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade python3-perfUpgrade kernel-livepatch-6.1.176-220.358Upgrade bpftoolUpgrade kernel6.18-devel | Jun 23, 2026 | May 28, 2026 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Jul 5, 2026 | Jul 5, 2026 |
| Redhat_linux | — | No solution existsUpgrade kernel-rtUpgrade kernel | Jul 8, 2026 | May 28, 2026 |
| Rocky_linux | — | Upgrade bpftoolUpgrade kernel-rt-debug-coreUpgrade perfUpgrade kernel-debug-modules-coreUpgrade kernel-modules-extra-matchedUpgrade kernel-rtUpgrade kernel-rt-modules-coreUpgrade kernel-rt-debugUpgrade kernel-rt-kvmUpgrade kernel-tools-libs-develUpgrade kernel-rt-develUpgrade kernel-toolsUpgrade kernel-debuginfo-common-s390xUpgrade kernel-rt-debug-debuginfoUpgrade kernel-rt-debuginfo-common-x86_64Upgrade kernel-tools-libsUpgrade python3-perf-debuginfoUpgrade kernel-uki-virt-addonsUpgrade kernel-rt-modules-extraUpgrade rvUpgrade kernel-develUpgrade kernel-rt-debug-modules-coreUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-debuginfoUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-zfcpdump-modulesUpgrade kernel-rt-debuginfoUpgrade libperf-debuginfoUpgrade kernel-rt-modulesUpgrade bpftool-debuginfoUpgrade kernel-devel-matchedUpgrade kernel-modulesUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rt-coreUpgrade kernelUpgrade kernel-modules-coreUpgrade kernel-debuginfoUpgrade perf-debuginfoUpgrade libperfUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-debug-coreUpgrade kernel-debug-develUpgrade kernel-debugUpgrade kernel-zfcpdump-develUpgrade kernel-coreUpgrade kernel-rt-debug-modulesUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-debug-uki-virtUpgrade rtlaUpgrade kernel-uki-virtUpgrade kernel-modules-extraUpgrade kernel-rt-debug-kvmUpgrade kernel-debug-devel-matchedUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-zfcpdump-debuginfoUpgrade kernel-zfcpdumpUpgrade kernel-rt-debug-develUpgrade kernel-debug-modulesUpgrade python3-perfUpgrade kernel-tools-debuginfo | Jul 13, 2026 | Jul 11, 2026 |
| Ubuntu | — | Upgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-realtime-64k-hwe-26.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-nvidia-64k-hwe-26.04Upgrade linux-image-azureUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-laptop-23.10Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-7.0.0-1016-nvidia-64kUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-nvidia-bos-7.0Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-6.8.0-136-genericUpgrade linux-image-oem-26.04Upgrade linux-image-nvidia-tegraUpgrade linux-image-7.0.0-1008-gcpUpgrade linux-image-nvidia-bosUpgrade linux-image-gkeopUpgrade linux-image-genericUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-raspi-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-7.0.0-1011-gcp-64kUpgrade linux-image-aws-lts-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-7.0.0-1015-raspiUpgrade linux-image-nvidia-bos-64kUpgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-oem-24.04cUpgrade linux-image-gke-64k-6.8Upgrade linux-image-raspi-realtime-7.0Upgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-64kUpgrade linux-image-nvidia-64k-7.0Upgrade linux-image-generic-64k-6.8Upgrade linux-image-gke-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-generic-64k-7.0Upgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-6.8.0-136-fipsUpgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-7.0.0-1009-aws-64kUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-aws-7.0Upgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-7.0Upgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-oem-24.04aUpgrade linux-image-aws-6.8Upgrade linux-image-oem-26.04aUpgrade linux-image-gcp-64k-7.0Upgrade linux-image-gcp-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04cUpgrade linux-image-realtime-hwe-26.04Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-virtual-6.8Upgrade linux-image-azure-7.0Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-7.0.0-2016-nvidia-bosUpgrade linux-image-7.0.0-1016-nvidiaUpgrade linux-image-realtime-7.0Upgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-oem-20.04bUpgrade linux-image-virtual-hwe-26.04Upgrade linux-image-oem-20.04dUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gke-7.0Upgrade linux-image-ibm-7.0Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-aws-fips-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-gcp-fipsUpgrade linux-image-gke-64k-7.0Upgrade linux-image-nvidia-hwe-26.04Upgrade linux-image-6.8.0-1063-azureUpgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-generic-hwe-26.04Upgrade linux-image-intel-iotgUpgrade linux-image-generic-7.0Upgrade linux-image-raspiUpgrade linux-image-7.0.0-1008-oracleUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-bos-64k-7.0Upgrade linux-image-7.0.0-1010-ibmUpgrade linux-image-oem-7.0Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-7.0.0-1008-gcp-64kUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-oem-24.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-ibmUpgrade linux-image-aws-64kUpgrade linux-image-7.0.0-1003-gkeUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-virtual-7.0Upgrade linux-image-oracle-64k-7.0Upgrade linux-image-7.0.0-28-realtime-64kUpgrade linux-image-fipsUpgrade linux-image-7.0.0-28-realtimeUpgrade linux-image-7.0.0-1010-azureUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-xilinxUpgrade linux-image-realtimeUpgrade linux-image-gke-hwe-26.04Upgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-lowlatencyUpgrade linux-image-azure-fipsUpgrade linux-image-azure-fde-6.8Upgrade linux-image-oem-20.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-raspi-7.0Upgrade linux-image-aws-64k-7.0Upgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-oem-22.04aUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-gcp-6.8Upgrade linux-image-azure-fde-7.0Upgrade linux-image-7.0.0-1008-oracle-64kUpgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-oracleUpgrade linux-image-oem-24.04bUpgrade linux-image-7.0.0-1009-awsUpgrade linux-image-7.0.0-1003-gke-64kUpgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-oem-24.04dUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-ibm-6.8Upgrade linux-image-gkeUpgrade linux-image-gcp-7.0Upgrade linux-image-azure-lts-24.04Upgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-gcpUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-awsUpgrade linux-image-fips-6.8Upgrade linux-image-azure-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-aws-fipsUpgrade linux-image-7.0.0-28-generic-64kUpgrade linux-image-7.0.0-1014-azureUpgrade linux-image-7.0.0-1011-gcpUpgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-virtualUpgrade linux-image-realtime-64k-7.0Upgrade linux-image-oracle-7.0Upgrade linux-image-oem-22.04Upgrade linux-image-lowlatency-64kUpgrade linux-image-gke-64k-hwe-26.04Upgrade linux-image-generic-64k-hwe-26.04Upgrade linux-image-realtime-64kUpgrade linux-image-raspi-realtimeUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-7.0.0-28-genericUpgrade linux-image-7.0.0-2016-nvidia-bos-64kUpgrade linux-image-7.0.0-1015-raspi-realtimeUpgrade linux-image-7.0.0-1009-oemUpgrade linux-image-7.0.0-1009-azure-fde | Jul 20, 2026 | May 28, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 6, 2026 | May 28, 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