CVE-2026-64579 json
xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert
published 2026-08-05 3 mo ago modified 2026-11-06 2 d ago also EUVD-2026-53273
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 6%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert
xfrm_hash_rebuild()'s first loop preallocates the bins/chains the reinsert loop needs, so the reinsert (after hlist_del_rcu()) cannot allocate or fail. But its guard is inverted: it skips policies with prefixlen < threshold and preallocates for the rest.
prefixlen < threshold is exactly when policy_hash_bysel() returns NULL and the reinsert takes the allocating xfrm_policy_inexact_insert() path. So the loop preallocates for the exact policies (which never allocate) and skips the inexact ones, whose bin/node is then allocated GFP_ATOMIC during reinsert. On failure the error path only WARN_ONCE()s and continues, leaving a poisoned bydst node; the next rebuild's hlist_del_rcu() dereferences LIST_POISON2 and takes a GPF. Reachable under memory pressure, deterministic via failslab.
Invert the guard so preallocation covers exactly the reinserted policies; the reinsert then allocates nothing and cannot fail.
Crash: Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI KASAN: maybe wild-memory-access in range [0xdead...] ... Workqueue: events xfrm_hash_rebuild RIP: 0010:xfrm_hash_rebuild+0x5b3/0x1190 RAX: dead000000000122 (LIST_POISON2 + offset) ... Call Trace: hlist_del_rcu (include/linux/rculist.h:599) xfrm_hash_rebuild (net/xfrm/xfrm_policy.c:1365) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) ... Kernel panic - not syncing: Fatal exception in interrupt
Patch / fix
- Linux Linux 5.10.265, 5.15.216, 6.1.183, 6.6.148, 6.12.101, 6.18.42, 7.1.6, 7.2
- linux Debian 12 6.1.187-1
- linux Debian 13 6.12.101-1
- linux Debian 14 7.1.6-1
- linux-6.12 Debian 12 6.12.101-1~deb12u1
debian advisories DEBIAN-CVE-2026-64579
- linux Ubuntu 22.04 LTS 5.15.0-198.208
- linux Ubuntu 24.04 LTS 6.8.0-147.147
- linux Ubuntu 26.04 LTS 7.0.0-38.38
- linux-aws Ubuntu 22.04 LTS 5.15.0-1117.124
- linux-aws Ubuntu 24.04 LTS 6.8.0-1067.70
- linux-aws Ubuntu 26.04 LTS 7.0.0-1014.14
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1118.128
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1071.79
ubuntu advisories UBUNTU-CVE-2026-64579
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-64kb SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1
- kernel-syms SLE Module for Development Tools 15 SP7 6.4.0-150700.53.84.1
- kernel-azure SLE Module for Public Cloud 15 SP7 6.4.0-150700.53.84.1
- kernel-source SLE Module for Development Tools 15 SP7, SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1
- kernel-default SLE Workstation Extension 15 SP7, SLE Module for Legacy 15 SP7, SLE Module for Basesystem 15 SP7 +2 more 6.4.0-150700.53.84.1
- kernel-zfcpdump SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1
- kernel-obs-build SLE Module for Development Tools 15 SP7 6.4.0-150700.53.84.1
- kernel-default-base SLE Module for Basesystem 15 SP7 6.4.0-150700.53.84.1.150700.17.47.1
suse advisories SUSE-SU-2026:4706-1SUSE-SU-2026:4640-1SUSE-SU-2026:24316-1SUSE-SU-2026:24315-1SUSE-SU-2026:24181-1SUSE-SU-2026:24182-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.38.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.38.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.38.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.38.1
- kernel-azure openSUSE Leap 16.0 6.12.0-160000.38.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.38.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.38.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.38.1
opensuse advisories openSUSE-SU-2026:21910-1openSUSE-SU-2026:11476-1
- git.kernel.org/stable/c/e48f4c3e3df35b34be719d72d737bbeaca77cf0c commit
- git.kernel.org/stable/c/1cdeed9df1306f1a277e715600772640d63defa9 commit
- git.kernel.org/stable/c/43a4d510523779891cf8eca7ffb4a086b0b5d8bf commit
- git.kernel.org/stable/c/d9d9cc21cc90014724a14c447e3d587be9447107 commit
- git.kernel.org/stable/c/94c00391a5117530188334f740ce26d3f1256190 commit
- git.kernel.org/stable/c/7acc5ed2f33608a3d83b64f50a5766843b6e2485 commit
- git.kernel.org/stable/c/6aa3796d18a9fda953ad76a62b57bf6c145cb9ef commit
- git.kernel.org/stable/c/f38f8cce2f7e79775b3db7e8a5eacda04ac908e4 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-64579 updated cvss 5.5
kernel: xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert
-
Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelaffected: workaround, no fix available “Fix deferred”
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 d ago
Exploit prediction
0.17% chance of exploitation in the next 30 days, higher than 6% of all scored CVEs (FIRST EPSS, 2026-11-08).
Affected products
- Linux Linux
Classification
- Technology feeds
References
- git.kernel.org /stable/c/e48f4c3e3df35b34be719d72d737bbeaca77cf0c
- git.kernel.org /stable/c/1cdeed9df1306f1a277e715600772640d63defa9
- git.kernel.org /stable/c/43a4d510523779891cf8eca7ffb4a086b0b5d8bf
- git.kernel.org /stable/c/d9d9cc21cc90014724a14c447e3d587be9447107
- git.kernel.org /stable/c/94c00391a5117530188334f740ce26d3f1256190
- git.kernel.org /stable/c/7acc5ed2f33608a3d83b64f50a5766843b6e2485
- git.kernel.org /stable/c/6aa3796d18a9fda953ad76a62b57bf6c145cb9ef
- git.kernel.org /stable/c/f38f8cce2f7e79775b3db7e8a5eacda04ac908e4
Sources
- CVE List CVE-2026-64579
- NVD CVE-2026-64579
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.