CVE-2026-45839CWE-129

CVE-2026-45839

High · published May 27, 2026

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

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

bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec()

CO-RE accessor strings are colon-separated indices that describe a path

from a root BTF type to a target field, e.g. "0:1:2" walks through

nested struct members. bpf_core_parse_spec() parses each component with

sscanf("%d"), so negative values like -1 are silently accepted. The

subsequent bounds checks (access_idx >= btf_vlen(t)) only guard the

upper bound and always pass for negative values because C integer

promotion converts the __u16 btf_vlen result to int, making the

comparison (int)(-1) >= (int)(N) false for any positive N.

When -1 reaches btf_member_bit_offset() it gets cast to u32 0xffffffff,

producing an out-of-bounds read far past the members array. A crafted

BPF program with a negative CO-RE accessor on any struct that exists in

vmlinux BTF (e.g. task_struct) crashes the kernel deterministically

during BPF_PROG_LOAD on any system with CONFIG_DEBUG_INFO_BTF=y

(default on major distributions). The bug is reachable with CAP_BPF:

BUG: unable to handle page fault for address: ffffed11818b6626

#PF: supervisor read access in kernel mode

#PF: error_code(0x0000) - not-present page

Oops: Oops: 0000 [#1] SMP KASAN NOPTI

CPU: 0 UID: 0 PID: 85 Comm: poc Not tainted 7.0.0-rc6 #18 PREEMPT(full)

RIP: 0010:bpf_core_parse_spec (tools/lib/bpf/relo_core.c:354)

RAX: 00000000ffffffff

Call Trace:

<TASK>

bpf_core_calc_relo_insn (tools/lib/bpf/relo_core.c:1321)

bpf_core_apply (kernel/bpf/btf.c:9507)

check_core_relo (kernel/bpf/verifier.c:19475)

bpf_check (kernel/bpf/verifier.c:26031)

bpf_prog_load (kernel/bpf/syscall.c:3089)

__sys_bpf (kernel/bpf/syscall.c:6228)

</TASK>

CO-RE accessor indices are inherently non-negative (struct member index,

array element index, or enumerator index), so reject them immediately

after parsing.

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.00179 · 7.1th percentile
Weakness
CWE-129 · Improper Validation of Array Index
Published
2026-05-27T15:16Z
Affected products (6)
ProductVersionsFixed in
linux/linux_kernel≥ 5.4, < 5.15.2095.15.209
linux/linux_kernel≥ 5.16, < 6.1.1756.1.175
linux/linux_kernel≥ 6.2, < 6.6.1416.6.141
linux/linux_kernel≥ 6.7, < 6.12.916.12.91
linux/linux_kernel≥ 6.13, < 6.18.336.18.33
linux/linux_kernel≥ 6.19, < 7.0.107.0.10
References (9)
EPSS history
Timeline
  • 27 MAY 09:24Z
    bpf: reject negative CO-RE accessor indices in bpf_core_parse_spec()
    cvelistv5