Description
In the Linux kernel, the following vulnerability has been resolved:

xfrm: use hlist_del_init_rcu for state_cache and state_cache_input

Commit 14acf9652e56 ("xfrm: defensively unhash xfrm_state lists in
__xfrm_state_delete") converted bydst/bysrc/byseq/byspi from
hlist_del_rcu() to hlist_del_init_rcu() so that a second
__xfrm_state_delete() on the same object becomes a no-op rather than a
write through LIST_POISON pprev. It missed state_cache and
state_cache_input, which kept hlist_del_rcu():

- hlist_del_rcu() leaves pprev = LIST_POISON2 (non-NULL), so
hlist_unhashed() returns false.
- hlist_del_init_rcu() leaves pprev = NULL, so hlist_unhashed()
returns true.

A second __xfrm_state_delete() therefore enters __hlist_del() on the
already-deleted state_cache/state_cache_input nodes and does
WRITE_ONCE(*pprev, next) through LIST_POISON2 — a write use-after-free
once the slab is reused. The corruption can in turn cause a subsequent
hlist_for_each_entry_rcu traversal to follow a dangling next pointer,
producing the read use-after-free reported in xfrm_input_state_lookup().

Switch state_cache and state_cache_input to hlist_del_init_rcu() to
match the other four lists, closing the write use-after-free and, with
it, the read use-after-free it spawns.
Published: 2026-10-06
Score: 7 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation via Use‑After‑Free
Action: Immediate Patch
AI Analysis

Impact

The flaw exists in the Linux kernel’s XFRM state handling. When a state object is removed more than once, the first deletion uses hlist_del_rcu() which leaves a poisoned pointer that marks the list as hashed. A second deletion then writes through this poisoned pointer, corrupting memory and creating a write use‑after‑free. This corruption can cause a later hlist traversal to follow a dangling pointer, leading to a read use‑after‑free and potential compromise of kernel memory. An attacker who can trigger repeated deletions of XFRM states could read or modify kernel data, eventually hijacking control flow and escalating privileges or executing arbitrary code.

Affected Systems

All Linux kernel builds that have not yet applied commit 14acf9652e56, which changes the state_cache and state_cache_input list delete function to hlist_del_init_rcu(). This includes every distribution or custom kernel that remains on a kernel version where those lists use hlist_del_rcu() and does not yet incorporate the patch.

Risk and Exploitability

The CVSS score of 7 denotes high severity, while the EPSS score of less than 1% indicates a very low probability of exploitation. The vulnerability is not listed in the CISA KEV catalog. Exploitation would likely require a local or privileged attacker capable of manipulating IPsec traffic or invoking kernel code that deletes state objects; remote exploitation through normal network traffic alone appears unlikely.

Generated by OpenCVE AI on October 10, 2026 at 03:25 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes commit 14acf9652e56, which replaces hlist_del_rcu() with hlist_del_init_rcu() for state_cache and state_cache_input.
  • Reboot the system (or reload the kernel module) so that the patched code is active.
  • If an update cannot be applied immediately, disable or restrict XFRM/IPSec functionality to avoid the vulnerable code path, and monitor system logs for signs of memory corruption or crashes.

Generated by OpenCVE AI on October 10, 2026 at 03:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Debian DSA Debian DSA DSA-6568-1 linux security update
History

Sat, 10 Oct 2026 02:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 10 Oct 2026 00:30:00 +0000


Wed, 07 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 07 Oct 2026 10:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Wed, 07 Oct 2026 07:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Tue, 06 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Tue, 06 Oct 2026 09:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: xfrm: use hlist_del_init_rcu for state_cache and state_cache_input Commit 14acf9652e56 ("xfrm: defensively unhash xfrm_state lists in __xfrm_state_delete") converted bydst/bysrc/byseq/byspi from hlist_del_rcu() to hlist_del_init_rcu() so that a second __xfrm_state_delete() on the same object becomes a no-op rather than a write through LIST_POISON pprev. It missed state_cache and state_cache_input, which kept hlist_del_rcu(): - hlist_del_rcu() leaves pprev = LIST_POISON2 (non-NULL), so hlist_unhashed() returns false. - hlist_del_init_rcu() leaves pprev = NULL, so hlist_unhashed() returns true. A second __xfrm_state_delete() therefore enters __hlist_del() on the already-deleted state_cache/state_cache_input nodes and does WRITE_ONCE(*pprev, next) through LIST_POISON2 — a write use-after-free once the slab is reused. The corruption can in turn cause a subsequent hlist_for_each_entry_rcu traversal to follow a dangling next pointer, producing the read use-after-free reported in xfrm_input_state_lookup(). Switch state_cache and state_cache_input to hlist_del_init_rcu() to match the other four lists, closing the write use-after-free and, with it, the read use-after-free it spawns.
Title xfrm: use hlist_del_init_rcu for state_cache and state_cache_input
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:16:02.121Z

Reserved: 2026-09-25T10:25:14.328Z

Link: CVE-2026-98230

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-06T09:18:10.397

Modified: 2026-10-19T10:18:23.767

Link: CVE-2026-98230

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-06T00:00:00Z

Links: CVE-2026-98230 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-10T03:30:16Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference