[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170413093418.GC24027@leverpostej>
Date: Thu, 13 Apr 2017 10:34:18 +0100
From: Mark Rutland <mark.rutland@....com>
To: Andrey Konovalov <andreyknvl@...gle.com>
Cc: Marc Zyngier <marc.zyngier@....com>, kvm@...r.kernel.org,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will.deacon@....com>,
LKML <linux-kernel@...r.kernel.org>,
Kostya Serebryany <kcc@...gle.com>,
syzkaller <syzkaller@...glegroups.com>,
linux-arm-kernel@...ts.infradead.org,
Dmitry Vyukov <dvyukov@...gle.com>,
Paolo Bonzini <pbonzini@...hat.com>,
kvmarm@...ts.cs.columbia.edu
Subject: Re: kvm/arm64: use-after-free in
kvm_unmap_hva_handler/unmap_stage2_pmds
On Wed, Apr 12, 2017 at 08:51:31PM +0200, Andrey Konovalov wrote:
> On Wed, Apr 12, 2017 at 8:43 PM, Marc Zyngier <marc.zyngier@....com> wrote:
> > On 12/04/17 17:19, Andrey Konovalov wrote:
> >> I now have a way to reproduce it, so I can test proposed patches. I
> >> don't have a simple C reproducer though.
> >>
> >> The bug happens when the following syzkaller program is executed:
> >>
> >> mmap(&(0x7f0000000000/0xc000)=nil, (0xc000), 0x3, 0x32, 0xffffffffffffffff, 0x0)
> >> unshare(0x400)
> >> perf_event_open(&(0x7f000002f000-0x78)={0x1, 0x78, 0x0, 0x0, 0x0, 0x0,
> >> 0x0, 0x6, 0x0, 0x0, 0xd34, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
> >> 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x0, 0xffffffff,
> >> 0xffffffffffffffff, 0x0)
> >> r0 = openat$kvm(0xffffffffffffff9c,
> >> &(0x7f000000c000-0x9)="2f6465762f6b766d00", 0x0, 0x0)
> >> ioctl$TIOCSBRK(0xffffffffffffffff, 0x5427)
> >> r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0)
> >> syz_kvm_setup_cpu$arm64(r1, 0xffffffffffffffff,
> >> &(0x7f0000dc6000/0x18000)=nil, &(0x7f000000c000)=[{0x0,
> >> &(0x7f000000c000)="5ba3c16f533efbed09f8221253c73763327fadce2371813b45dd7f7982f84a873e4ae89a6c2bd1af83a6024c36a1ff518318",
> >> 0x32}], 0x1, 0x0, &(0x7f000000d000-0x10)=[@featur2={0x1, 0x3}], 0x1)
> >
> > Is that the only thing the program does? Or is there anything running in
> > parallel?
>
> These calls are executed repeatedly and in random order. That's all.
>
> Except that I'm running the reproducer on a real arm board, so there's
> probably a bunch of stuff going on besides these calls.
I had a go at reproducing this on an arm64 board following [1], but so
far I've had no luck. I've dumped the above into syz-kvm-bug, and I'm
trying to reproduce the issue with:
PATH=$PATH:$(pwd)/bin syz-execprog \
-executor $(pwd)/bin/syz-executor \
-cover=0 -repeat=0 -procs 16 \
syz-kvm-bug
Just to check, is that the correct way to reproduce the problem with the
above log?
How quickly does that reproduce the problem for you?
Thanks,
Mark.
[1] https://github.com/google/syzkaller/wiki/How-to-execute-syzkaller-programs
Powered by blists - more mailing lists