Re: [PATCH bpf-next] bpf: Always WARN_ONCE on verifier bugs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 9, 2025 at 1:26 AM Daniel Borkmann <daniel@xxxxxxxxxxxxx> wrote:
>
> On 5/9/25 12:31 AM, Alexei Starovoitov wrote:
> > On Thu, May 8, 2025 at 1:40 PM Paul Chaignon <paul.chaignon@xxxxxxxxx> wrote:
> >>
> >> Throughout the verifier's logic, there are multiple checks for
> >> inconsistent states that should never happen and would indicate a
> >> verifier bug. These bugs are typically logged in the verifier logs and
> >> sometimes preceded by a WARN_ONCE.
> >>
> >> This patch reworks these checks to consistently emit a verifier log AND
> >> a warning. The consistent use of WARN_ONCE should help fuzzers (ex.
> >> syzkaller) expose any situation where they are actually able to reach
> >> one of those buggy verifier states.
> >
> > No. We cannot do it.
> > WARN_ONCE is for kernel level issues.
> > In some configs use panic_on_warn=1 too.
> > Whereas a verifier bug is contained within a verifier.
> > It will not bring the kernel down.
>
> Agree.
>
> > We should remove most of the existing WARN_ONCE instead.
> > Potentially replace them with pr_info_once().
>
> Just a thought, maybe one potential avenue could be to have an equivalent of
> CONFIG_DEBUG_NET which we make a hard dependency of CONFIG_DEBUG_KERNEL so that
> /noone/ enables this anywhere in production, and then fuzzers could use it
> to their advantage. The default case for a DEBUG_BPF_WARN_ONCE would then fall
> to BUILD_BUG_ON_INVALID() which lets compiler check validity but not generate
> code.

Good idea.
but I'm not a fan of the new kconfig.
I'd rather combine some of them.
Like make CONFIG_BPF_JIT depend on CONFIG_BPF_SYSCALL.
That would remove a ton of empty static inline helpers.

For this case doing WARN_ON only when IS_ENABLED(CONFIG_DEBUG_KERNEL)
should be fine.

I guess we can introduce BPF_WARN_ONCE() and friends family of macros
and use them everywhere in kernel/bpf/ where the warning is not
harmful to the kernel ?





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux