]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
bpf: reject direct access to nullable PTR_TO_BUF pointers
authorQi Tang <tpluszz77@gmail.com>
Thu, 2 Apr 2026 09:29:22 +0000 (17:29 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 2 Apr 2026 16:47:13 +0000 (09:47 -0700)
commitb0db1accbc7395657c2b79db59fa9fae0d6656f3
treef123854cf8f49c5311bfaf1888d270f8386e7280
parentad8391d37f334ee73ba91926f8b4e4cf6d31ea04
bpf: reject direct access to nullable PTR_TO_BUF pointers

check_mem_access() matches PTR_TO_BUF via base_type() which strips
PTR_MAYBE_NULL, allowing direct dereference without a null check.

Map iterator ctx->key and ctx->value are PTR_TO_BUF | PTR_MAYBE_NULL.
On stop callbacks these are NULL, causing a kernel NULL dereference.

Add a type_may_be_null() guard to the PTR_TO_BUF branch, matching the
existing PTR_TO_BTF_ID pattern.

Fixes: 20b2aff4bc15 ("bpf: Introduce MEM_RDONLY flag")
Signed-off-by: Qi Tang <tpluszz77@gmail.com>
Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Link: https://lore.kernel.org/r/20260402092923.38357-2-tpluszz77@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/verifier.c