Re: WARNING in kmem_cache_free
On Sun, Apr 8, 2018 at 5:31 PM, Stephan Müller wrote: > Am Sonntag, 8. April 2018, 13:18:06 CEST schrieb Dmitry Vyukov: > > Hi Dmitry, > >> >> Running syz-repro utility on this log, I think I've found the guilty guy: >> https://gist.githubusercontent.com/dvyukov/1dd75d55efd238e7207af1cc38478b3a/ >> raw/403859b56b161a6fbb158e8953fac5bb6e73b1a1/gistfile1.txt >> > > I am unable to reproduce it with the code. I am using the current > cryptodev-2.6 tree with kazan enabled. Could you please give me your kernel > config or a pointer of the used tree? Hi, Here is config and kernel commit: https://groups.google.com/d/msg/syzkaller-bugs/PINYyzoaG1s/ntZPOZdcCAAJ You can also find compiler and image here if necessary: https://github.com/google/syzkaller/blob/master/docs/syzbot.md And note that the program needs to be compiled with -m32. The bugs is probably not-compat specific, but the program injects fault into a particular malloc invocation and maybe malloc numbering is affected by compat path. >> It crashes as: >> BUG: KASAN: use-after-free in drbg_kcapi_seed+0x1178/0x12e0 >> and: >> BUG: unable to handle kernel paging request at ebe00020 >> and with other indications of badly corrupted heap. >> >> This points to crypto/drbg.c, so +crypto maintainers. > > > Ciao > Stephan > > > -- > You received this message because you are subscribed to the Google Groups > "syzkaller-bugs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to syzkaller-bugs+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/syzkaller-bugs/4564679.HlOejCIXXz%40positron.chronox.de. > For more options, visit https://groups.google.com/d/optout.
Re: WARNING in kmem_cache_free
Am Sonntag, 8. April 2018, 13:18:06 CEST schrieb Dmitry Vyukov: Hi Dmitry, > > Running syz-repro utility on this log, I think I've found the guilty guy: > https://gist.githubusercontent.com/dvyukov/1dd75d55efd238e7207af1cc38478b3a/ > raw/403859b56b161a6fbb158e8953fac5bb6e73b1a1/gistfile1.txt > I am unable to reproduce it with the code. I am using the current cryptodev-2.6 tree with kazan enabled. Could you please give me your kernel config or a pointer of the used tree? > It crashes as: > BUG: KASAN: use-after-free in drbg_kcapi_seed+0x1178/0x12e0 > and: > BUG: unable to handle kernel paging request at ebe00020 > and with other indications of badly corrupted heap. > > This points to crypto/drbg.c, so +crypto maintainers. Ciao Stephan
Re: WARNING in kmem_cache_free
On Sun, Apr 8, 2018 at 12:26 PM, Dmitry Vyukov wrote: > On Sun, Apr 8, 2018 at 8:01 AM, Matthew Wilcox wrote: >> On Fri, Apr 06, 2018 at 03:33:36PM +0200, Dmitry Vyukov wrote: >>> On Fri, Apr 6, 2018 at 3:24 PM, syzbot >>> wrote: >>> > Unfortunately, I don't have any reproducer for this crash yet. >>> >>> Interesting type of bug, I think we see this for the first time. >> >> Can you focus syzbot to try to find a reproducer? This seems to be >> produced by calling mount() with a pathname that's somewhere between, >> say, 3950 & 4100 bytes long from a compat 32-bit task. > > > Something in the log definitely triggers a very bad heap corruption. > > This can be reproduced following instructions at: > https://github.com/google/syzkaller/blob/master/docs/syzbot.md#syzkaller-reproducers > > and then running: > ./syz-execprog -sandbox=namespace -arch=386 -repeat=0 -procs=10 log.txt > > where log.txt comes from "Raw console output" link. > > Note that you need to build syzkaller with 'make TARGETARCH=386' and > the use bin/linux_386/syz-executor. > > While running it I got: > BUG: KASAN: double-free or invalid-free in free_request_size+0x5b/0x70 > block/blk-core.c:769 > https://gist.githubusercontent.com/dvyukov/05f4e77a34795d329aa7a2f40265e396/raw/63a29123b79f1fbad3521d0ff034946be68bfd4a/gistfile1.txt > > Then kernel BUG at mm/slab.c:4407! > https://gist.githubusercontent.com/dvyukov/5b3bcc90d326e9da3636aea2c95ace8f/raw/1589504c708994936681d61ba9d70029998b9b1a/gistfile1.txt > > And then BUG: unable to handle kernel paging request at ebe00020 > https://gist.githubusercontent.com/dvyukov/72025b1c68e488f4fda243e0c152f044/raw/d2c171bc55ad3a43cea33095fa2eea48768b1131/gistfile1.txt > > One interesting thing is that if I run the log once and it does not > crash, then when I try to start binary again I am getting: > [ 456.837870] Invalid argument reading file caps for /root/syz-executor > The binary somehow becomes broken on disk... > > I guess syzbot did find a reproducer in this log, but did not > attribute it to this bug as it causes crashes all over the place. Running syz-repro utility on this log, I think I've found the guilty guy: https://gist.githubusercontent.com/dvyukov/1dd75d55efd238e7207af1cc38478b3a/raw/403859b56b161a6fbb158e8953fac5bb6e73b1a1/gistfile1.txt It crashes as: BUG: KASAN: use-after-free in drbg_kcapi_seed+0x1178/0x12e0 and: BUG: unable to handle kernel paging request at ebe00020 and with other indications of badly corrupted heap. This points to crypto/drbg.c, so +crypto maintainers.
Re: WARNING in kmem_cache_free
On Sun, Apr 8, 2018 at 8:01 AM, Matthew Wilcox wrote: > On Fri, Apr 06, 2018 at 03:33:36PM +0200, Dmitry Vyukov wrote: >> On Fri, Apr 6, 2018 at 3:24 PM, syzbot >> wrote: >> > Unfortunately, I don't have any reproducer for this crash yet. >> >> Interesting type of bug, I think we see this for the first time. > > Can you focus syzbot to try to find a reproducer? This seems to be > produced by calling mount() with a pathname that's somewhere between, > say, 3950 & 4100 bytes long from a compat 32-bit task. Something in the log definitely triggers a very bad heap corruption. This can be reproduced following instructions at: https://github.com/google/syzkaller/blob/master/docs/syzbot.md#syzkaller-reproducers and then running: ./syz-execprog -sandbox=namespace -arch=386 -repeat=0 -procs=10 log.txt where log.txt comes from "Raw console output" link. Note that you need to build syzkaller with 'make TARGETARCH=386' and the use bin/linux_386/syz-executor. While running it I got: BUG: KASAN: double-free or invalid-free in free_request_size+0x5b/0x70 block/blk-core.c:769 https://gist.githubusercontent.com/dvyukov/05f4e77a34795d329aa7a2f40265e396/raw/63a29123b79f1fbad3521d0ff034946be68bfd4a/gistfile1.txt Then kernel BUG at mm/slab.c:4407! https://gist.githubusercontent.com/dvyukov/5b3bcc90d326e9da3636aea2c95ace8f/raw/1589504c708994936681d61ba9d70029998b9b1a/gistfile1.txt And then BUG: unable to handle kernel paging request at ebe00020 https://gist.githubusercontent.com/dvyukov/72025b1c68e488f4fda243e0c152f044/raw/d2c171bc55ad3a43cea33095fa2eea48768b1131/gistfile1.txt One interesting thing is that if I run the log once and it does not crash, then when I try to start binary again I am getting: [ 456.837870] Invalid argument reading file caps for /root/syz-executor The binary somehow becomes broken on disk... I guess syzbot did find a reproducer in this log, but did not attribute it to this bug as it causes crashes all over the place.
Re: WARNING in kmem_cache_free
On Fri, Apr 06, 2018 at 03:33:36PM +0200, Dmitry Vyukov wrote: > On Fri, Apr 6, 2018 at 3:24 PM, syzbot > wrote: > > Unfortunately, I don't have any reproducer for this crash yet. > > Interesting type of bug, I think we see this for the first time. Can you focus syzbot to try to find a reproducer? This seems to be produced by calling mount() with a pathname that's somewhere between, say, 3950 & 4100 bytes long from a compat 32-bit task.
Re: WARNING in kmem_cache_free
On Fri, Apr 06, 2018 at 03:33:36PM +0200, Dmitry Vyukov wrote: > Interesting type of bug, I think we see this for the first time. > > Al, do you see how this can happen? putname() on something that hasn't come from getname(). Short of reproducer, I don't see what can be done - it can be any kind of memory corruption. We have return filename_lookup(dfd, getname_flags(name, flags, empty), flags, path, NULL); with filename_lookup() hitting putname(name); return retval; on the way out (and seeing refcount 1, at that, so it hasn't ended up in audit context). And object it's trying to free is not something getname_flags() has allocated.
Re: WARNING in kmem_cache_free
On Fri, Apr 6, 2018 at 3:24 PM, syzbot wrote: > Hello, > > syzbot hit the following crash on upstream commit > f2d285669aae656dfeafa0bf25e86bbbc5d22329 (Tue Apr 3 17:45:39 2018 +) > Merge tag 'pm-4.17-rc1' of > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm > syzbot dashboard link: > https://syzkaller.appspot.com/bug?extid=75397ee3df5c70164154 > > Unfortunately, I don't have any reproducer for this crash yet. > Raw console output: > https://syzkaller.appspot.com/x/log.txt?id=5265497960480768 > Kernel config: https://syzkaller.appspot.com/x/.config?id=686016073509112605 > compiler: gcc (GCC) 7.1.1 20170620 > user-space arch: i386 > > IMPORTANT: if you fix the bug, please add the following tag to the commit: > Reported-by: syzbot+75397ee3df5c70164...@syzkaller.appspotmail.com > It will help syzbot understand when the bug is fixed. See footer for > details. > If you forward the report, please keep this part and the footer. > > cache_from_obj: Wrong slab cache. names_cache but object is from kmalloc-96 /\/\/\/\ Interesting type of bug, I think we see this for the first time. Al, do you see how this can happen? > WARNING: CPU: 0 PID: 11100 at mm/slab.h:378 cache_from_obj mm/slab.h:376 > [inline] > WARNING: CPU: 0 PID: 11100 at mm/slab.h:378 kmem_cache_free+0x226/0x2a0 > mm/slab.c:3736 > Kernel panic - not syncing: panic_on_warn set ... > > CPU: 0 PID: 11100 Comm: syz-executor3 Not tainted 4.16.0+ #288 > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS > Google 01/01/2011 > Call Trace: > __dump_stack lib/dump_stack.c:17 [inline] > dump_stack+0x1a7/0x27d lib/dump_stack.c:53 > panic+0x1f8/0x42c kernel/panic.c:183 > __warn+0x1dc/0x200 kernel/panic.c:547 > report_bug+0x1f4/0x2b0 lib/bug.c:186 > fixup_bug.part.10+0x37/0x80 arch/x86/kernel/traps.c:178 > fixup_bug arch/x86/kernel/traps.c:247 [inline] > do_error_trap+0x2d7/0x3e0 arch/x86/kernel/traps.c:296 > do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:315 > invalid_op+0x1b/0x40 arch/x86/entry/entry_64.S:991 > RIP: 0010:cache_from_obj mm/slab.h:376 [inline] > RIP: 0010:kmem_cache_free+0x226/0x2a0 mm/slab.c:3736 > RSP: 0018:8801933a7970 EFLAGS: 00010282 > RAX: 004b RBX: 8801dad7e600 RCX: > RDX: 004b RSI: c90002a2d000 RDI: ed0032674f22 > RBP: 8801933a7990 R08: ed003b604f99 R09: ed003b604f99 > R10: R11: ed003b604f98 R12: 880199ec2000 > R13: 8801dad7e600 R14: 8801d08585dc R15: ffd8 > putname+0xc8/0x130 fs/namei.c:255 > filename_lookup+0x315/0x500 fs/namei.c:2324 > user_path_at_empty+0x40/0x50 fs/namei.c:2569 > user_path include/linux/namei.h:62 [inline] > do_mount+0x15f/0x2b90 fs/namespace.c:2787 > C_SYSC_mount fs/compat.c:195 [inline] > compat_SyS_mount+0xd0/0x1070 fs/compat.c:160 > do_syscall_32_irqs_on arch/x86/entry/common.c:330 [inline] > do_fast_syscall_32+0x3ec/0xf9f arch/x86/entry/common.c:392 > entry_SYSENTER_compat+0x70/0x7f arch/x86/entry/entry_64_compat.S:139 > RIP: 0023:0xf7f47c99 > RSP: 002b:f5f42c6c EFLAGS: 0246 ORIG_RAX: 0015 > RAX: ffda RBX: 080eff11 RCX: 2000 > RDX: RSI: 080d6b6d RDI: > RBP: R08: R09: > R10: R11: R12: > R13: R14: R15: > Dumping ftrace buffer: >(ftrace buffer empty) > Kernel Offset: disabled > Rebooting in 86400 seconds.. > > > --- > This bug is generated by a dumb bot. It may contain errors. > See https://goo.gl/tpsmEJ for details. > Direct all questions to syzkal...@googlegroups.com. > > syzbot will keep track of this bug report. > If you forgot to add the Reported-by tag, once the fix for this bug is > merged > into any tree, please reply to this email with: > #syz fix: exact-commit-title > To mark this as a duplicate of another syzbot report, please reply with: > #syz dup: exact-subject-of-another-report > If it's a one-off invalid bug report, please reply with: > #syz invalid > Note: if the crash happens again, it will cause creation of a new bug > report. > Note: all commands must start from beginning of the line in the email body. > > -- > You received this message because you are subscribed to the Google Groups > "syzkaller-bugs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to syzkaller-bugs+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/syzkaller-bugs/001a114467482dbc4b05692df8f9%40google.com. > For more options, visit https://groups.google.com/d/optout.