CVE-2026-45839 in Linux
Zusammenfassung
von VulDB • 27.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bpf: Verwerfen negativer CO-RE-Accessor-Indizes in bpf_core_parse_spec()
CO-RE-Accessor-Zeichenfolgen sind durch Doppelpunkte getrennte Indizes, die einen Pfad von einem root-BTF-Typ zu einem Zielfeld beschreiben, z. B. durchläuft „0:1:2“ verschachtelte Strukturmember. bpf_core_parse_spec() parst jede Komponente mit sscanf("%d"), sodass negative Werte wie -1 stillschweigend akzeptiert werden. Die nachfolgenden Bereichsprüfungen (access_idx >= btf_vlen(t)) schützen nur die obere Grenze und schlagen für negative Werte immer fehl, da die C-Ganzzahlerweiterung das __u16-btf_vlen-Ergebnis in int konvertiert, wodurch der Vergleich (int)(-1) >= (int)(N) für jedes positive N falsch ist.
Wenn -1 btf_member_bit_offset() erreicht, wird es zu u32 0xffffffff umgewandelt, was zu einem Out-of-Bounds-Lesezugriff weit hinter dem Member-Array führt. Ein speziell angefertigtes BPF-Programm mit einem negativen CO-RE-Accessor auf einer beliebigen Struktur, die im vmlinux-BTF vorhanden ist (z. B. task_struct), stürzt den Kernel deterministisch während BPF_PROG_LOAD auf jedem System mit CONFIG_DEBUG_INFO_BTF=y (Standard bei großen Distributionen) ab. Der Fehler ist mit CAP_BPF erreichbar:
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: 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)
CO-RE-Accessor-Indizes sind inhärent nicht-negativ (Strukturmember-Index, Array-Element-Index oder Enumerator-Index), daher sollten sie unmittelbar nach dem Parsen verworfen werden.
If you want to get best quality of vulnerability data, you may have to visit VulDB.