CVE-2026-53239CWE-362CWE-416

CVE-2026-53239

High · published June 25, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
0.9
In the wild
Unconfirmed
What it is

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

xfrm: policy: fix use-after-free on inexact bin in xfrm_policy_bysel_ctx()

Fix the race by pruning the bin while still holding xfrm_policy_lock,

before dropping it. Use __xfrm_policy_inexact_prune_bin() directly since

the lock is already held. The wrapper xfrm_policy_inexact_prune_bin()

becomes unused and is removed.

Race:

CPU0 (XFRM_MSG_DELPOLICY) CPU1 (XFRM_MSG_NEWSPDINFO)

========================== ==========================

xfrm_policy_bysel_ctx():

spin_lock_bh(xfrm_policy_lock)

bin = xfrm_policy_inexact_lookup()

__xfrm_policy_unlink(pol)

spin_unlock_bh(xfrm_policy_lock)

xfrm_policy_kill(ret)

// wide window, lock not held

xfrm_hash_rebuild():

spin_lock_bh(xfrm_policy_lock)

__xfrm_policy_inexact_flush():

kfree_rcu(bin) // bin freed

spin_unlock_bh(xfrm_policy_lock)

xfrm_policy_inexact_prune_bin(bin)

// UAF: bin is freed

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00101 · 0.9th percentile
Weaknesses
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'); CWE-416 · Use After Free
Published
2026-06-25T13:16Z
Affected products (14)
ProductVersionsFixed in
linux/linux_kernel≥ 5.0, < 5.10.2595.10.259
linux/linux_kernel≥ 5.11, < 5.15.2105.15.210
linux/linux_kernel≥ 5.16, < 6.1.1766.1.176
linux/linux_kernel≥ 6.2, < 6.6.1436.6.143
linux/linux_kernel≥ 6.7, < 6.12.946.12.94
linux/linux_kernel≥ 6.13, < 6.18.366.18.36
linux/linux_kernel≥ 6.19, < 7.0.137.0.13
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (11)
EPSS history
Timeline
  • 25 JUN 08:39Z
    xfrm: policy: fix use-after-free on inexact bin in xfrm_policy_bysel_ctx()
    cvelistv5