CVE-2026-98149: bpf: Fix percpu map update indexing with sparse CPU IDs

High 7.8 EPSS 0.1% Linux kernel

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.

What do these terms mean? CVE · CVSS score · exploited (KEV) · EPSS · backported fix · all terms

What to do now

  1. Check whether you run Linux kernel and which version (commands below).
  2. Install the fixed version for your system: see “Patch it” below.
  3. Reboot into the new kernel (uname -r to confirm); live patching (kpatch, Ubuntu Livepatch, SUSE kGraft/klp) can defer the reboot for some CVEs

Affected and fixed versions

Affected:

Patch it

Use the commands for your system. Distribution packages often keep an older version number with the fix backported, so compare with the fixed package versions in the table below, not only with the upstream version.

Debian
sudo apt update
sudo apt install --only-upgrade linux-image-amd64
Ubuntu
sudo apt update
sudo apt install --only-upgrade linux-image-generic (or the installed flavour: linux-image-aws, -azure, -gcp, -virtual)
RHEL, AlmaLinux, Rocky, Oracle
sudo dnf upgrade --refresh kernel
Fedora
sudo dnf upgrade --refresh kernel
SUSE / openSUSE
sudo zypper refresh
sudo zypper update kernel-default
Amazon Linux
sudo dnf upgrade --releasever=latest kernel kernel6.12
Arch Linux
sudo pacman -Syu
Alpine
apk update && apk upgrade linux-lts linux-virt
FreeBSD
not Linux

General update steps for every system are on the Linux and Unix & BSD pages; after updating, see which services to restart.

Fix status in Linux distributions

ReleasePackageStatusFixed version / advisory
Debian 12linuxnot affected
Debian 13linuxnot affected
Debian testinglinuxfixed7.2.7-1

From the Debian security tracker, Ubuntu CVE tracker and Red Hat Security Data API, refreshed every few hours.

Sources

Page generated automatically from official sources on 2026-11-03 18:05 UTC. Always confirm with your vendor's advisory.