CVE-2026-64579

xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert

N/A
Published: August 5, 2026 at 08:09 AM UTC
Updated: August 19, 2026 at 05:20 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

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

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

5.0 ≤ v < 5.10.2655.0 ≤ v < 5.15.2165.0 ≤ v < 6.1.1835.0 ≤ v < 6.12.1015.0 ≤ v < 6.18.425.0 ≤ v < 6.6.1485.0 ≤ v < 7.1.65.0 ≤ v < 7.224969facd704a5f0dd8e08da86bf32a9ce972bee5.0
Vendor states this is fixed in 1cdeed9df1306f1a277e715600772640d63defa9 (fixed)
Vendor states this is fixed in 43a4d510523779891cf8eca7ffb4a086b0b5d8bf (fixed)
Vendor states this is fixed in 6aa3796d18a9fda953ad76a62b57bf6c145cb9ef (fixed)
Vendor states this is fixed in 7acc5ed2f33608a3d83b64f50a5766843b6e2485 (fixed)
Vendor states this is fixed in 94c00391a5117530188334f740ce26d3f1256190 (fixed)
Vendor states this is fixed in d9d9cc21cc90014724a14c447e3d587be9447107 (fixed)
Vendor states this is fixed in e48f4c3e3df35b34be719d72d737bbeaca77cf0c (fixed)
Vendor states this is fixed in f38f8cce2f7e79775b3db7e8a5eacda04ac908e4 (fixed)
Vendor states this is fixed in 5.0 (unaffected)
Vendor states this is fixed in 5.10.265 (unaffected)
Vendor states this is fixed in 5.15.216 (unaffected)
Vendor states this is fixed in 6.1.183 (unaffected)
Vendor states this is fixed in 6.12.101 (unaffected)
Vendor states this is fixed in 6.18.42 (unaffected)
Vendor states this is fixed in 6.6.148 (unaffected)
Vendor states this is fixed in 7.1.6 (unaffected)
Vendor states this is fixed in 7.2 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card