CVE Database
/

CVE-2026-45839

Back to search

CVE-2026-45839

Published: May 27, 2026

Modified: Jun 1, 2026

PUBLISHED

Description

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.

VendorProductVersions

Linux

Linux

affected
ddc7c3042614e273044f698d2beab25cc3842d45 - < a9e777f856cd2f1efc106afc7bf21aef868509d5
affected
ddc7c3042614e273044f698d2beab25cc3842d45 - < 669349b4612c26b3d7aacfa99d7174681bd19223
affected
ddc7c3042614e273044f698d2beab25cc3842d45 - < 3ff85ae79e1a74baeb916b78a63d821f6d19a994
affected
ddc7c3042614e273044f698d2beab25cc3842d45 - < 36a9012f76ba8d9189ae56a1f8bb7c87c07a1f3a
affected
ddc7c3042614e273044f698d2beab25cc3842d45 - < 76f2ebaf79a9ae6d0737b87f045fe769e425d78f

+2 more versions

Linux

Linux

affected
5.4
unaffected
0 - < 5.4
unaffected
5.15.209 - <= 5.15.*
unaffected
6.1.175 - <= 6.1.*
unaffected
6.6.141 - <= 6.6.*

+4 more versions

Security Training

Train your team to recognize and prevent security threats with our comprehensive security awareness program.

Start Training

Vulnerability Scanning

Discover vulnerabilities in your applications and infrastructure before attackers do.

Scan Now