{"id":"CVE-2026-64579","title":"xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert\n\nxfrm_hash_rebuild()'s first loop preallocates the bins/chains the reinsert\nloop needs, so the …","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < e48f4c3e3df35b34be719d72d737bbeaca77cf0c","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 1cdeed9df1306f1a277e715600772640d63defa9","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 43a4d510523779891cf8eca7ffb4a086b0b5d8bf","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < d9d9cc21cc90014724a14c447e3d587be9447107","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 94c00391a5117530188334f740ce26d3f1256190","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 7acc5ed2f33608a3d83b64f50a5766843b6e2485","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 6aa3796d18a9fda953ad76a62b57bf6c145cb9ef","Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < f38f8cce2f7e79775b3db7e8a5eacda04ac908e4","Linux 5.0"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-11-06T16:41:52.574490Z"},"published":"2026-08-05","updated":"2026-11-06","sourceUpdated":"2026-11-06T16:44:57.876Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-64579","references":[{"url":"https://git.kernel.org/stable/c/e48f4c3e3df35b34be719d72d737bbeaca77cf0c"},{"url":"https://git.kernel.org/stable/c/1cdeed9df1306f1a277e715600772640d63defa9"},{"url":"https://git.kernel.org/stable/c/43a4d510523779891cf8eca7ffb4a086b0b5d8bf"},{"url":"https://git.kernel.org/stable/c/d9d9cc21cc90014724a14c447e3d587be9447107"},{"url":"https://git.kernel.org/stable/c/94c00391a5117530188334f740ce26d3f1256190"},{"url":"https://git.kernel.org/stable/c/7acc5ed2f33608a3d83b64f50a5766843b6e2485"},{"url":"https://git.kernel.org/stable/c/6aa3796d18a9fda953ad76a62b57bf6c145cb9ef"},{"url":"https://git.kernel.org/stable/c/f38f8cce2f7e79775b3db7e8a5eacda04ac908e4"}],"tags":["cve.org"],"epss":0.00171,"epssPercentile":0.06493,"ingestedAt":"2026-11-06T16:57:43.149Z","slug":"CVE-2026-64579","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert\n\nxfrm_hash_rebuild()'s first loop preallocates the bins/chains the reinsert\nloop needs, so the reinsert (after hlist_del_rcu()) cannot allocate or\nfail. But its guard is inverted: it skips policies with prefixlen <\nthreshold and preallocates for the rest.\n\nprefixlen < threshold is exactly when policy_hash_bysel() returns NULL and\nthe reinsert takes the allocating xfrm_policy_inexact_insert() path. So the\nloop preallocates for the exact policies (which never allocate) and skips\nthe inexact ones, whose bin/node is then allocated GFP_ATOMIC during\nreinsert. On failure the error path only WARN_ONCE()s and continues,\nleaving a poisoned bydst node; the next rebuild's hlist_del_rcu()\ndereferences LIST_POISON2 and takes a GPF. Reachable under memory pressure,\ndeterministic via failslab.\n\nInvert the guard so preallocation covers exactly the reinserted policies;\nthe reinsert then allocates nothing and cannot fail.\n\nCrash:\n  Oops: general protection fault, probably for non-canonical address\n  0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI\n  KASAN: maybe wild-memory-access in range [0xdead...]\n  ...\n  Workqueue: events xfrm_hash_rebuild\n  RIP: 0010:xfrm_hash_rebuild+0x5b3/0x1190\n  RAX: dead000000000122   (LIST_POISON2 + offset)\n  ...\n  Call Trace:\n   hlist_del_rcu (include/linux/rculist.h:599)\n   xfrm_hash_rebuild (net/xfrm/xfrm_policy.c:1365)\n   process_one_work (kernel/workqueue.c:3322)\n   worker_thread (kernel/workqueue.c:3486)\n   kthread (kernel/kthread.c:436)\n   ret_from_fork (arch/x86/kernel/process.c:158)\n   ret_from_fork_asm (arch/x86/entry/entry_64.S:245)\n   ...\n  Kernel panic - not syncing: Fatal exception in interrupt\n\n## Affected\n\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < e48f4c3e3df35b34be719d72d737bbeaca77cf0c`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 1cdeed9df1306f1a277e715600772640d63defa9`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 43a4d510523779891cf8eca7ffb4a086b0b5d8bf`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < d9d9cc21cc90014724a14c447e3d587be9447107`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 94c00391a5117530188334f740ce26d3f1256190`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 7acc5ed2f33608a3d83b64f50a5766843b6e2485`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < 6aa3796d18a9fda953ad76a62b57bf6c145cb9ef`\n- `Linux >= 24969facd704a5f0dd8e08da86bf32a9ce972bee < f38f8cce2f7e79775b3db7e8a5eacda04ac908e4`\n- `Linux 5.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}