]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
bpf: Reject BPF_MAP_TYPE_INSN_ARRAY in check_reg_const_str()
authorDeepanshu Kartikey <kartikey406@gmail.com>
Wed, 7 Jan 2026 02:10:37 +0000 (07:40 +0530)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 8 Jan 2026 03:03:46 +0000 (19:03 -0800)
commit9df5fad801c5c568ee5f5dacd8b53565d88e4f02
treef46d5f23f2f956ab34b8cbce70156f101098c1a2
parentab86d0bf01f6d0e37fd67761bb62918321b64efc
bpf: Reject BPF_MAP_TYPE_INSN_ARRAY in check_reg_const_str()

BPF_MAP_TYPE_INSN_ARRAY maps store instruction pointers in their
ips array, not string data. The map_direct_value_addr callback for
this map type returns the address of the ips array, which is not
suitable for use as a constant string argument.

When a BPF program passes a pointer to an insn_array map value as
ARG_PTR_TO_CONST_STR (e.g., to bpf_snprintf), the verifier's
null-termination check in check_reg_const_str() operates on the
wrong memory region, and at runtime bpf_bprintf_prepare() can read
out of bounds searching for a null terminator.

Reject BPF_MAP_TYPE_INSN_ARRAY in check_reg_const_str() since this
map type is not designed to hold string data.

Reported-by: syzbot+2c29addf92581b410079@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=2c29addf92581b410079
Tested-by: syzbot+2c29addf92581b410079@syzkaller.appspotmail.com
Fixes: 493d9e0d6083 ("bpf, x86: add support for indirect jumps")
Signed-off-by: Deepanshu Kartikey <kartikey406@gmail.com>
Acked-by: Anton Protopopov <a.s.protopopov@gmail.com>
Link: https://lore.kernel.org/r/20260107021037.289644-1-kartikey406@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/verifier.c