🛡️ CVE-2026-23342 — kernel

🟡 CVSS 4.7 — Medium ✅ No Known Exploit NVD
4.7
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

bpf: Fix race in cpumap on PREEMPT_RT

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

bpf: Fix race in cpumap on PREEMPT_RT

On PREEMPT_RT kernels, the per-CPU xdp_bulk_queue (bq) can be accessed

concurrently by multiple preemptible tasks on the same CPU.

The original code assumes bq_enqueue() and __cpu_map_flush() run

atomically with respect to each other on the same CPU, relying on

local_bh_disable() to prevent preemption. However, on PREEMPT_RT,

local_bh_disable() only calls migrate_disable() (when

PREEMPT_RT_NEEDS_BH_LOCK is not set) and does not disable

preemption, which allows CFS scheduling to preempt a task during

bq_flush_to_queue(), enabling another task on the same CPU to enter

bq_enqueue() and operate on the same per-CPU bq concurrently.

This leads to several races:

1. Double __list_del_clearprev(): after bq->count is reset in

bq_flush_to_queue(), a preempting task can call bq_enqueue() ->

bq_flush_to_queue() on the same bq when bq->count reaches

CPU_MAP_BULK_SIZE. Both tasks then call __list_del_clearprev()

on the same bq->flush_node, the second call dereferences the

prev pointer that was already set to NULL by the first.

2. bq->count and bq->q[] races: concurrent bq_enqueue() can corrupt

the packet queue while bq_flush_to_queue() is processing it.

The race between task A (__cpu_map_flush -> bq_flush_to_queue) and

task B (bq_enqueue -> bq_flush_to_queue) on the same CPU:

Task A (xdp_do_flush) Task B (cpu_map_enqueue)

---------------------- ------------------------

bq_flush_to_queue(bq)

spin_lock(&q->producer_lock)

/* flush bq->q[] to ptr_ring */

bq->count = 0

spin_unlock(&q->producer_lock)

bq_enqueue(rcpu, xdpf)

<-- CFS preempts Task A --> bq->q[bq->count++] = xdpf

/* ... more enqueues until full ... */

bq_flush_to_queue(bq)

spin_lock(&q->producer_lock)

/* flush to ptr_ring */

spin_unlock(&q->producer_lock)

__list_del_clearprev(flush_node)

/* sets flush_node.prev = NULL */

<-- Task A resumes -->

__list_del_clearprev(flush_node)

flush_node.prev->next = ...

/* prev is NULL -> kernel oops */

Fix this by adding a local_lock_t to xdp_bulk_queue and acquiring it

in bq_enqueue() and __cpu_map_flush(). These paths already run under

local_bh_disable(), so use local_lock_nested_bh() which on non-RT is

a pure annotation with no overhead, and on PREEMPT_RT provides a

per-CPU sleeping lock that serializes access to the bq.

To reproduce, insert an mdelay(100) between bq->count = 0 and

__list_del_clearprev() in bq_flush_to_queue(), then run reproducer

provided by syzkaller.

How this vulnerability can be exploited

This issue can be reached with local access to the system, attack complexity is high, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality none, integrity none, availability high.

Affected software

CVE-2026-23342 is recorded against 2 packages.

  • kernel (from 6.19.0 up to 6.19.7)
  • linux-kernel

Timeline and source

Published on 25 March 2026 and last revised on 15 July 2026. No public exploit is currently recorded for this entry. A vendor advisory or fix has been published. Record sourced from NVD.

References

git.kernel.org (Web)
git.kernel.org (Web)
git.kernel.org (Web)
github.com (Advisory)
nvd.nist.gov (Advisory)
git.kernel.org (Package)

CVE-2026-23342 on other distributions

Each distribution ships its own build and its own fixed version. Pick the one you run:

Details

Severity Medium
CVSS Score 4.7
CVSS Vector CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
CWE N/A
Public Exploit ✅ No
Source NVD
Published 2026-03-25
Updated 2026-08-12
Modified 2026-07-15

Affected Packages

Software From version Fixed in
kernel 6.19.0 6.19.7
linux-kernel

Similar Threats

Vulnerability Monitoring

Track new vulnerabilities in kernel

CVE-2026-23342 is rated CVSS 4.7 Medium. BotEraser monitors your WordPress installation and notifies you when software you use appears in our vulnerability database.

Set Up Free Alerts →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.

Browse related advisories

All advisoriesCVECVE 2026