Re: [PATCH bpf] bpf: Fix NULL pointer dereference in bpf_sock_from_file

[email protected]
Newsgroups org.kernel.vger.netdev,org.kernel.vger.bpf
Message-ID <4fc9c8150478b9b1f1b349068e6aac3817a8f9d80fe1e71cb31b72791bb3365d@mail.kernel.org>
> commit b394c2b75945f69ef4a6312d0fa18f1cc000d0c2
> Author: MahnurA <[email protected]>
> Date:   Tue Aug 18 19:42:53 2026 +0200
>
>     bpf: Fix NULL pointer dereference in bpf_sock_from_file
>
>     bpf_sock_from_file should not dereference a NULL file pointer.
>     KASAN detects a null-ptr-deref when eBPF tracing
>     fentry/fexit programs are attached to points such as
>     __mmap_region and file_map_prot_check kernel functions. This can
>     result in a NULL file pointer flowing from context to the helper.
>
>     A minimal check before dereferencing can fix this.
>
>     Fixes: b60da4955f53 ("bpf: Only provide bpf_sock_from_file with CONFIG_NET")
>     Signed-off-by: MahnurA <[email protected]>

Does the Fixes: tag reference the right commit?

Looking at b60da4955f53 ("bpf: Only provide bpf_sock_from_file with
CONFIG_NET"), that commit was a pure relocation: it deleted the helper from
kernel/trace/bpf_trace.c and re-added the identical body in net/core/filter.c,
and moved the proto dispatch from bpf_tracing_func_proto() to
tracing_prog_func_proto().

The body it moved was already:

    BPF_CALL_1(bpf_sock_from_file, struct file *, file)
    {
            return (unsigned long) sock_from_file(file);
    }

The unchecked dereference was introduced when the helper was first added, in
4f19cab76136 ("bpf: Add a bpf_sock_from_file helper"), which created exactly
that body. sock_from_file() in net/socket.c dereferences its argument
unconditionally via 'if (likely(file->f_op == &socket_file_ops))', so the
null-ptr-deref has existed since 4f19cab76136, not since b60da4955f53.

Should the Fixes: tag be:

  Fixes: 4f19cab76136 ("bpf: Add a bpf_sock_from_file helper")

Practical backport impact is small because both commits landed in the v5.11
merge window, but the tag is what stable/AUTOSEL tooling uses to pick a range,
and it points at a commit that did not introduce the bug.


---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md

CI run summary: https://github.com/kernel-patches/bpf/actions/runs/32172667075
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.