CVE-2026-98039

CVE-2026-98039

published September 25, 2026

CVSS
—
EPSS
0%
Percentile
5.7
In the wild
Unconfirmed
What it is

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

bpf: Require MEM_PERCPU for percpu kptr stores

map_kptr_match_type() treats perm_flags as the set of register type flags

that a kptr field permits. Adding MEM_PERCPU to that set for

BPF_KPTR_PERCPU does not require the source register to carry it, however.

The subset test consequently accepts both a plain bpf_obj_new() allocation

and a referenced kernel pointer into a __percpu_kptr map field.

Loads from the field are always marked MEM_PERCPU. Consumers then treat the

stored value as the cookie returned by bpf_percpu_obj_new(): per-CPU pointer

helpers relocate it, and map teardown selects the per-CPU free path. A plain

allocation can therefore provide an arbitrary kernel read/write, while a

kernel pointer can be relocated into an invalid address or sent through a

missing destructor.

Require the source MEM_PERCPU flag to match the destination field kind.

This preserves valid bpf_percpu_obj_new() stores and rejects both the

program-BTF and kernel-BTF variants.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00168 · 5.7th percentile
Published
2026-09-25T15:17Z
References (4)
EPSS history
Timeline
  • 27 SEP 03:28Z
    EPSS moved — → 0%
    epss
  • 25 SEP 10:23Z
    bpf: Require MEM_PERCPU for percpu kptr stores
    cvelistv5