Re: kernel panic: stack is corrupted in udp4_lib_lookup2

From: Dmitry Vyukov
Date: Fri Jan 04 2019 - 06:05:22 EST


On Fri, Jan 4, 2019 at 11:54 AM Stefano Brivio <sbrivio@xxxxxxxxxx> wrote:
>
> On Fri, 4 Jan 2019 11:32:12 +0100
> Dmitry Vyukov <dvyukov@xxxxxxxxxx> wrote:
>
> > On Thu, Jan 3, 2019 at 10:54 PM Stefano Brivio <sbrivio@xxxxxxxxxx> wrote:
> > >
> > > On Thu, 3 Jan 2019 15:15:06 -0600
> > > Willem de Bruijn <willemdebruijn.kernel@xxxxxxxxx> wrote:
> > >
> > > > syzbot generated stack traces with
> > > >
> > > > [ 183.517380] udpv6_err+0x46/0x60
> > > > [ 183.520739] ? __udp6_lib_err+0x1890/0x1890
> > > > [ 183.525054] gue6_err_proto_handler+0x199/0x280
> > >
> > > Where? I can't find that in any logs linked from the dashboard at
> > > https://syzkaller.appspot.com/bug?extid=4ad25edc7a33e4ab91e0 :(
> >
> > Stefano, there are these 4 bugs reported that have similarly looking
> > reproducers involving udp sockets and that crash modes that looks like
> > stack corruption/overflow:
> >
> > https://syzkaller.appspot.com/bug?extid=14005fa30c9a07192934
> > https://syzkaller.appspot.com/bug?extid=d14090007dc9ba5fa9b7
> > https://syzkaller.appspot.com/bug?extid=137ed32ec9a6d5b0d5fe
> > https://syzkaller.appspot.com/bug?id=d5bc3e0c66d200d72216ab343a67c4327e4a3452
> >
> > Are these the same bug as this?
>
> Judging from the reproducers for the first three, they seem to be.

OK, then I will mark them as dups of this one.

> I
> guess I can trigger tests also for those by sending a (sharp)syz
> test ... e-mail with the patch to the Reported-by: addresses, right?

Correct.
These should be on LKML, but as you noted you can just add the syzbot
email with tag to TO/CC. That email is available in the Reported-by
tag (and also shown on the dashboard).

> And the three reports you pointed out from the pile of corrupted
> reports also seem to match, others look unrelated.

I've added these as tests:

https://github.com/google/syzkaller/blob/master/pkg/report/testdata/linux/report/341
https://github.com/google/syzkaller/blob/master/pkg/report/testdata/linux/report/342
https://github.com/google/syzkaller/blob/master/pkg/report/testdata/linux/report/343
https://github.com/google/syzkaller/blob/master/pkg/report/testdata/linux/report/344

Will try to figure out how to distinguish them from true corrupted
reports. Usually when Call Trace does not have any frames, it's a sign
of a corrupted report, and in other crashes we see the same report but
with a stack trace. But some stack-corruption-related reliably don't
have stack traces (not corrupted). But then some other
stack-corruption-related crashes do have stack traces, and for these
no stack trace again means a corrupted kernel output. Amusingly this
is one of the most complex parts of syzkaller.