CVE-2026-53096CWE-362CWE-476

CVE-2026-53096

High · published June 24, 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:

bpf: Use RCU-safe iteration in dev_map_redirect_multi() SKB path

The DEVMAP_HASH branch in dev_map_redirect_multi() uses

hlist_for_each_entry_safe() to iterate hash buckets, but this function

runs under RCU protection (called from xdp_do_generic_redirect_map()

in softirq context). Concurrent writers (__dev_map_hash_update_elem,

dev_map_hash_delete_elem) modify the list using RCU primitives

(hlist_add_head_rcu, hlist_del_rcu).

hlist_for_each_entry_safe() performs plain pointer dereferences without

rcu_dereference(), missing the acquire barrier needed to pair with

writers' rcu_assign_pointer(). On weakly-ordered architectures (ARM64,

POWER), a reader can observe a partially-constructed node. It also

defeats CONFIG_PROVE_RCU lockdep validation and KCSAN data-race

detection.

Replace with hlist_for_each_entry_rcu() using rcu_read_lock_bh_held()

as the lockdep condition, consistent with the rcu_dereference_check()

used in the DEVMAP (non-hash) branch of the same functions. Also fix

the same incorrect lockdep_is_held(&dtab->index_lock) condition in

dev_map_enqueue_multi(), where the lock is not held either.

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.00102 · 0.9th percentile
Weaknesses
CWE-362 · Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition'); CWE-476 · NULL Pointer Dereference
Published
2026-06-24T21:17Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 5.14, < 5.15.2095.15.209
linux/linux_kernel≥ 5.16, < 6.1.1756.1.175
linux/linux_kernel≥ 6.2, < 6.6.1416.6.141
linux/linux_kernel≥ 6.7, < 6.12.916.12.91
linux/linux_kernel≥ 6.13, < 6.18.336.18.33
linux/linux_kernel≥ 6.19, < 7.0.107.0.10
References (7)
EPSS history
Timeline
  • 24 JUN 16:30Z
    bpf: Use RCU-safe iteration in dev_map_redirect_multi() SKB path
    cvelistv5