CVE-2026-98063

bpf: Fix NULL-ptr-deref in btf_var_show()

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 in btf_var_show()

btf_var_show() calls btf_type_id_resolve() unconditionally, which dereferences btf->resolved_ids. That is NULL for a base BTF - e.g. the vmlinux BTF that bpf_snprintf_btf() renders against - since base BTF is not resolved during parsing. btf_modifier_show() guards this with 'if (btf->resolved_ids)', but btf_var_show() does not.

A BPF program that passes the type_id of a BTF_KIND_VAR from the vmlinux BTF to bpf_snprintf_btf() thus NULL-derefs:

KASAN: probably user-memory-access in range [0x46638-0x4663f] RIP: 0010:btf_var_show (kernel/bpf/btf.c:2929) Call Trace: <TASK> btf_type_show (kernel/bpf/btf.c:8259) btf_type_snprintf_show (kernel/bpf/btf.c:8329) 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:84) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121) </TASK>

Resolve the var's type directly with btf_type_skip_modifiers() when resolved_ids is NULL, mirroring btf_modifier_show().

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 5756450c9a702da0efb4a993d0a6766b965736f3Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before e83fcbe3b5d4a1ffb0569bb7c280358065c6017aAffected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before e0d6a06171633d3ee3f7a39b57e5c845fb2b79f2Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before aec0a9c1579eb9edf534960be592d09481bd7ac3Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before e472ae0d97865e2021ee668a13eab64013aebf23Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before ca086264e98108b44fdf53971033811a48defe2bAffected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before ea383b3ea56979ce54c8aa88e6ec67164986c401Affected
  • c4d0bfb45068d853a478b9067a95969b1886a30f to before 5403a383f52fc0905703b488f7c3db4b2447dc58Affected
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.