CVE-2026-98064

bpf: Fix NULL-ptr-deref when showing a void BTF type

State
Published
Severity
Not scored
Published
Sep 25, 2026
Updated
Oct 19, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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

bpf: Fix NULL-ptr-deref when showing a void BTF type

btf_modifier_show() resolves the modifier and then calls btf_type_ops(t)->show() unconditionally. For the void type (type_id 0, BTF_KIND_UNKN) kind_ops[] has no entry, so ->show is NULL.

A "const void" (a modifier resolving to void) cannot be a map key or value - map_check_btf() rejects it because void has no size - so the map dump path does not reach it. But bpf_snprintf_btf() takes a type_id straight from the BPF program, and passing such a "const void" from the vmlinux BTF NULL-derefs:

KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] RIP: 0010:btf_modifier_show (kernel/bpf/btf.c:2914) Call Trace: <TASK> btf_type_show (kernel/bpf/btf.c:8251) btf_type_snprintf_show (kernel/bpf/btf.c:8321) bpf_snprintf_btf (kernel/trace/bpf_trace.c:1047) bpf_prog_test_run_raw_tp (net/bpf/test_run.c:829) __sys_bpf (kernel/bpf/syscall.c:4804) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) </TASK>

Fall back to btf_df_show() when the resolved type has no show op; it emits the "<unsupported kind:N>" placeholder already used for kinds like FWD and FUNC. bpf_snprintf_btf() then returns the length as usual.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before cf528f2d7a0a54f2a3c6d439cfa3c8d7dfe90d8dAffected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before adb15557a641cb8a31f83e5f62bd12042b138c7bAffected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 62b00074b58ccf43f61f70f2cfcac80937b530c6Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 86d86f9fcf62dd3654090fbf3cf7ae5f42aa0706Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 717abdfd1d559d01fdd102023f0a990fb0437240Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 98f1cb95221332139acf514350ae2cae3b8656c5Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 5324f4e75ff6e9c2ca2e267c5f34f0937f9d0ac9Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 4ea508b9ebd78bce7f212166d2e2cba66b875f08Affected
LinuxLinux
  • 5.10Affected
  • before 5.10Not affected
  • 5.10.271 through 5.10.*Not affected
  • 5.15.222 through 5.15.*Not affected
  • 6.1.189 through 6.1.*Not affected
  • 6.6.158 through 6.6.*Not affected
  • 6.12.111 through 6.12.*Not affected
  • 6.18.53 through 6.18.*Not affected
  • 7.2.7 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.