CVE-2026-98044

CVE-2026-98044

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: Reject legacy packet loads from callbacks

check_ld_abs() models a failed BPF_LD_ABS or BPF_LD_IND in a

subprogram as an implicit return with R0 set to zero. It calls

prepare_func_exit() to explore this synthesized path.

When the load is reached directly from a synchronous callback,

prepare_func_exit() enforces the callback return contract and marks R0

precise. R0 is not derived from a real instruction on this path, so

precision backtracking reaches the callback call with R0 still requested

and triggers the "callback unexpected regs" verifier bug. A privileged

program loader can therefore cause a verifier warning and an -EFAULT

BPF_PROG_LOAD.

These legacy packet-load instructions are deprecated. Reject them from

callbacks rather than complicating their implicit-return model. Check all

active frames before constructing the implicit return so nested static

subprograms cannot hide the callback context.

Global functions are verified independently with a fresh frame zero, so

an active-frame check cannot identify a global function called from a

callback. Also check the complete subprogram call graph during stack-depth

validation and reject a function containing a legacy load when any caller

is a callback. This covers global and static descendants without making

has_ld_abs transitive, preserving its per-function BTF return-type check.

Ordinary uses outside callbacks remain supported.

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: Reject legacy packet loads from callbacks
    cvelistv5