CVE-2026-98149CWE-125

CVE-2026-98149

High · published September 25, 2026

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

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

bpf: Fix percpu map update indexing with sparse CPU IDs

Per-CPU array, hash, and cgroup storage map updates without BPF_F_CPU

or BPF_F_ALL_CPUS use a value buffer whose per-CPU slots are packed in

possible-CPU order. The buffer is sized as:

round_up(value_size, 8) * num_possible_cpus()

The update paths iterate over possible CPUs, but use the logical CPU ID

to calculate the source offset:

value + size * cpu

This only works when possible CPU IDs are contiguous starting at zero.

For example, with a possible CPU mask of 0,2-3, the buffer contains

three slots corresponding to CPUs 0, 2, and 3. CPU2 is therefore

expected to use slot 1 and CPU3 slot 2. Instead, the current code uses

slots 2 and 3 respectively, causing incorrect per-CPU values and an

out-of-bounds read from the update buffer for CPU3.

The corresponding lookup paths already use a dense offset while

iterating over possible CPUs. Do the same for the array, hash, and

cgroup storage update paths, advancing the source offset once for each

possible CPU. BPF_F_ALL_CPUS continues to use the same value for every

CPU.

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.00124 · 2.0th percentile
Weakness
CWE-125 · Out-of-bounds Read
Published
2026-09-25T15:17Z
Affected products (2)
ProductVersionsFixed in
linux/linux_kernel≥ 7.0, < 7.2.77.2.7
linux/linux_kernelall versions—
References (2)
EPSS history
Timeline
  • 27 SEP 03:28Z
    EPSS moved — → 0%
    epss
  • 25 SEP 10:36Z
    bpf: Fix percpu map update indexing with sparse CPU IDs
    cvelistv5