Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp6844431rwr; Tue, 2 May 2023 06:23:23 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7qi1FiD3pRmRqv8viwvOAJ+iJKHHPUe31ayvbomYlChdthzqTMulx76QsD6B4UVQco/QE2 X-Received: by 2002:a17:902:e742:b0:1a6:5fdf:6555 with SMTP id p2-20020a170902e74200b001a65fdf6555mr20922646plf.50.1683033803205; Tue, 02 May 2023 06:23:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683033803; cv=none; d=google.com; s=arc-20160816; b=o1bOXa5VtH227tuFGjlPfljaLRR0iBieTObyIbqc6YolZB+p+WECr77eXqEUlVQm7b n0+Kb1fd+HAffSxLQ3VhvFAwiqzcd/rDPtg60sztl03DFxxYAQxIwnb42/4DL+t01djL Fx8fVKdGd+QBIQsg7xZjjZ7JYZbgzvLySbjARxB4uKsMnAzcXgZU9ML+C/Dm9CzFiTMD aX4DigZkCR8I6PBVMWk3tTvIqkXQfCZdHmiv+Mh5wM+wdHLFBt/uQlyDkMtibo8IkaYq FuZRab+rvOHXYXSmj2Mr29H+84v1Bd+mWTQxlGWRd5E2OD4uegqKffpgqS+ffezu9Nyl Fi6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=KPuAqu8UmFLStBWTtOYIoUzS/U74OANm4eYADPKV204=; b=fPCpOaYf3RnQ5DPb9MKdxIJIVbZ6NTKxcqnAI1L5oSZe+nXCvSJrtgUXj+dzhMac1F JZInjxrT5gucxiPUwSzEb3yUx9qMS79pQx7DB9W4KQ8NGlYLi33Wc5CDL7ZHqn/OEGdl ec1cLKX28t1lRGHhySlvQWmVaN+sqHFN9w2/pEjnkdyO6PNBA75luWEA4D2zrg5VkSR/ xMqecD6WzmcbgGZGa+AzxkfKwplVBv+Oh2afB8RhVKd7Lh2jtdKVdosJh04cy8ULF1d+ yQc4n9azfo+J5/voB9iFqD6tkI24bgpTcSkLxQOuXzy8gCdf84TT+hkUa4voS77/8t+8 BTIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=Xyl7xnQv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u12-20020a17090341cc00b001a664075202si32421518ple.542.2023.05.02.06.23.11; Tue, 02 May 2023 06:23:23 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@rivosinc-com.20221208.gappssmtp.com header.s=20221208 header.b=Xyl7xnQv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234072AbjEBNNi (ORCPT + 99 others); Tue, 2 May 2023 09:13:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233977AbjEBNNd (ORCPT ); Tue, 2 May 2023 09:13:33 -0400 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 532276A4B for ; Tue, 2 May 2023 06:13:24 -0700 (PDT) Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-3f1728c2a57so37823175e9.0 for ; Tue, 02 May 2023 06:13:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20221208.gappssmtp.com; s=20221208; t=1683033202; x=1685625202; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=KPuAqu8UmFLStBWTtOYIoUzS/U74OANm4eYADPKV204=; b=Xyl7xnQvZhjARg6e51wsWy63ffv7m8cmBYtafiqDbJkuS7dsXcrP+PVoaKN/1kr2Ug +RZ3ICcBdjO81nZTXTS675WEC8wVCo6PU+idYgNVPPbwxCzKSGvdUWoTW48MTDI0KFyx c4GWX4nwP/yzZEPS2Pj2/1vf6mCVTYjw5IpgRqsyIQaF5vKXLcPMRX1NOpQR2QetL/U3 bL66BXpSX9KdzkoJQ4Xrwsd0ugVje+2fYVHmDZ8Z7gfa7mkVJeih9PkhvYgL9qEV2EO2 lRBTJn79Qc1dauMRpPtoY025A5ziPnjfdDWnG5HRCmsdCPtGnFq7MRoCoqyKyUou6jd8 A0kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683033202; x=1685625202; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KPuAqu8UmFLStBWTtOYIoUzS/U74OANm4eYADPKV204=; b=M9thuXAFJHRg+jdqLdgccQp+5D8vuhmb1Cg16Hu4bIt2kKkdCe53l4ULk7Rm4Eto1T jmIfY88ZvW7EBhGKHrFL3dC2vZbvQNfaInppOC3/2qWsWd3n1yUFlla9ZfZWtyzMOyTw +9WPnMRBm0gQfNMKz3hELiT8o6hh7K2Ek5OrTbGfr1ij6qiQjf57d6IjHpLHINUONI9T IGR8PJUuPi2bd47qJ+nlQuxYv9iCHTTfg8KCZ+FRjdYKHmRgiJ79HHxYah210CjJnCQb PdJd95MTc748ioJrEr/AjgbPIa7sOeMoE1Njc6zW31MP73MmiGEdLFriyr8jisw8caqF TH6Q== X-Gm-Message-State: AC+VfDy2+0XaLt8zfbj93ML4QLm9hPbUDbZAOj3VDyBGnAhAIcMOV+8J xj8akmoSrNjXBViEX2scexFsgaKSma9KMNKVd2aVKA== X-Received: by 2002:adf:ea11:0:b0:2f1:e162:d48 with SMTP id q17-20020adfea11000000b002f1e1620d48mr11427959wrm.47.1683033202610; Tue, 02 May 2023 06:13:22 -0700 (PDT) MIME-Version: 1.0 References: <00000000000084706805fab08e27@google.com> <83578cb3-2528-cfab-21bc-cfeccd8124dd@ghiti.fr> In-Reply-To: From: Alexandre Ghiti Date: Tue, 2 May 2023 15:13:11 +0200 Message-ID: Subject: Re: [syzbot] [fs?] KASAN: stack-out-of-bounds Read in proc_pid_stack To: Dmitry Vyukov Cc: Alexandre Ghiti , syzbot , brauner@kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, syzkaller-bugs@googlegroups.com, linux-riscv , Palmer Dabbelt Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 2, 2023 at 2:50=E2=80=AFPM Dmitry Vyukov w= rote: > > On Tue, 2 May 2023 at 14:46, Alexandre Ghiti wro= te: > > > > On 5/2/23 09:15, Dmitry Vyukov wrote: > > > > > On Tue, 2 May 2023 at 09:05, syzbot > > > > > wrote: > > > > >> Hello, > > > > >> > > > > >> syzbot found the following issue on: > > > > >> > > > > >> HEAD commit: 950b879b7f02 riscv: Fixup race condition on PG_d= cache_clea.. > > > > >> git tree: git://git.kernel.org/pub/scm/linux/kernel/git/ri= scv/linux.git fixes > > > > >> console output: https://syzkaller.appspot.com/x/log.txt?x=3D10c4= c1f7c80000 > > > > >> kernel config: https://syzkaller.appspot.com/x/.config?x=3Deceb= ece1b90c0342 > > > > >> dashboard link: https://syzkaller.appspot.com/bug?extid=3D01e9a5= 64dc6b3289cea3 > > > > >> compiler: riscv64-linux-gnu-gcc (Debian 10.2.1-6) 10.2.1 2= 0210110, GNU ld (GNU Binutils for Debian) 2.35.2 > > > > >> userspace arch: riscv64 > > > > >> > > > > >> Unfortunately, I don't have any reproducer for this issue yet. > > > > >> > > > > >> IMPORTANT: if you fix the issue, please add the following tag to= the commit: > > > > >> Reported-by: syzbot+01e9a564dc6b3289cea3@syzkaller.appspotmail.c= om > > > > >> > > > > >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > >> BUG: KASAN: stack-out-of-bounds in walk_stackframe+0x128/0x2fe a= rch/riscv/kernel/stacktrace.c:58 > > > > >> Read of size 8 at addr ff200000030a79b0 by task syz-executor.1/7= 894 > > > > >> > > > > >> CPU: 0 PID: 7894 Comm: syz-executor.1 Tainted: G W = 6.2.0-rc1-syzkaller #0 > > > > >> Hardware name: riscv-virtio,qemu (DT) > > > > >> Call Trace: > > > > >> [] dump_backtrace+0x2e/0x3c arch/riscv/kernel/= stacktrace.c:121 > > > > >> [] show_stack+0x34/0x40 arch/riscv/kernel/stac= ktrace.c:127 > > > > >> [] __dump_stack lib/dump_stack.c:88 [inline] > > > > >> [] dump_stack_lvl+0xe0/0x14c lib/dump_stack.c:= 106 > > > > >> [] print_address_description mm/kasan/report.c= :306 [inline] > > > > >> [] print_report+0x1e4/0x4c0 mm/kasan/report.c:= 417 > > > > >> [] kasan_report+0xb8/0xe6 mm/kasan/report.c:51= 7 > > > > >> [] check_region_inline mm/kasan/generic.c:183 = [inline] > > > > >> [] __asan_load8+0x7e/0xa6 mm/kasan/generic.c:2= 56 > > > > >> [] walk_stackframe+0x128/0x2fe arch/riscv/kern= el/stacktrace.c:58 > > > > > +riscv maintainers > > > > > > > > > > I think this is an issue in riscv stack walking. > > > > > If it's imprecise or walks stacks of running tasks, it needs to u= se > > > > > READ_ONCE_NOCHECK. > > > > > > > > > > #syz set subsystems: riscv > > > > > > > > > > > > This fix was merged in 6.3: commit 76950340cf03 ("riscv: Use > > > > READ_ONCE_NOCHECK in imprecise unwinding stack mode"). > > > > > > Oh, I see, syzbot riscv build is still broken due to: > > > https://syzkaller.appspot.com/bug?id=3D502e4cca2c3c985c2125ffa945b8e6= 36b7b100d7 > > > > The fix for that was merged in 6.3-rc2 too (commit 2d311f480b52 > > ("riscv, bpf: Fix patch_text implicit declaration")): but the fixes > > branch is still based on top of Linux 6.3-rc1 (Aleksandr mentioned > > that already). > > Is riscv-fixes the right branch to test? > Is there one that is updated regularly? > syzbot generally requires a fresh tree. Provided there are dozens of > bugs being found and fixed every week, if a tree becomes too old, it > just produces already fixed bugs that waste time. I would say that testing only the latest rcX is the best bet for us as the fixes branch always lags on rc1, but @Palmer/@Conor may have another opinion. > > https://lore.kernel.org/all/00000000000049382505ebef4a0c@google.com/T/#md= 2075a04dd463fefe31f73e098672a69d948a1ce > > > > That's weird, I think this one was merged in v6.1-rc2 (commit > > 5c20a3a9df19 ("RISC-V: Fix compilation without RISCV_ISA_ZICBOM")). > > > > > > > > so it still tests an older build. > > > > FYI, the latest fixes for KASAN were merged in 6.4 (or are about to). > > > > Thanks, > > > > Alex > > > > > > > > #syz fix: > > > riscv: Use READ_ONCE_NOCHECK in imprecise unwinding stack mode > > > > > > > >> [] arch_stack_walk+0x2c/0x3c arch/riscv/kernel= /stacktrace.c:154 > > > > >> [] stack_trace_save_tsk+0x14a/0x1bc kernel/sta= cktrace.c:150 > > > > >> [] proc_pid_stack+0x146/0x1ee fs/proc/base.c:4= 56 > > > > >> [] proc_single_show+0x9c/0x148 fs/proc/base.c:= 777 > > > > >> [] traverse.part.0+0x74/0x2ca fs/seq_file.c:11= 1 > > > > >> [] traverse fs/seq_file.c:101 [inline] > > > > >> [] seq_read_iter+0x72c/0x934 fs/seq_file.c:195 > > > > >> [] seq_read+0x11a/0x16e fs/seq_file.c:162 > > > > >> [] do_loop_readv_writev fs/read_write.c:756 [i= nline] > > > > >> [] do_loop_readv_writev fs/read_write.c:743 [i= nline] > > > > >> [] do_iter_read+0x324/0x3c2 fs/read_write.c:79= 8 > > > > >> [] vfs_readv+0xfe/0x166 fs/read_write.c:916 > > > > >> [] do_preadv fs/read_write.c:1008 [inline] > > > > >> [] __do_sys_preadv fs/read_write.c:1058 [inlin= e] > > > > >> [] sys_preadv+0x182/0x1fa fs/read_write.c:1053 > > > > >> [] ret_from_syscall+0x0/0x2 > > > > >> > > > > >> The buggy address belongs to the virtual mapping at > > > > >> [ff200000030a0000, ff200000030a9000) created by: > > > > >> kernel_clone+0xee/0x914 kernel/fork.c:2681 > > > > >> > > > > >> The buggy address belongs to the physical page: > > > > >> page:ff1c0000024e5f00 refcount:1 mapcount:0 mapping:000000000000= 0000 index:0x0 pfn:0x9397c > > > > >> memcg:ff6000000ffd7202 > > > > >> flags: 0xffe000000000000(node=3D0|zone=3D0|lastcpupid=3D0x7ff) > > > > >> raw: 0ffe000000000000 0000000000000000 0000000000000122 00000000= 00000000 > > > > >> raw: 0000000000000000 0000000000000000 00000001ffffffff ff600000= 0ffd7202 > > > > >> page dumped because: kasan: bad access detected > > > > >> page_owner tracks the page as allocated > > > > >> page last allocated via order 0, migratetype Unmovable, gfp_mask= 0x102dc2(GFP_HIGHUSER|__GFP_NOWARN|__GFP_ZERO), pid 7873, tgid 7873 (syz-e= xecutor.1), ts 4012100669800, free_ts 4010400733200 > > > > >> __set_page_owner+0x32/0x182 mm/page_owner.c:190 > > > > >> set_page_owner include/linux/page_owner.h:31 [inline] > > > > >> post_alloc_hook+0xf8/0x11a mm/page_alloc.c:2524 > > > > >> prep_new_page mm/page_alloc.c:2531 [inline] > > > > >> get_page_from_freelist+0xc0e/0x1118 mm/page_alloc.c:4283 > > > > >> __alloc_pages+0x1b0/0x165a mm/page_alloc.c:5549 > > > > >> alloc_pages+0x132/0x25e mm/mempolicy.c:2286 > > > > >> vm_area_alloc_pages mm/vmalloc.c:2989 [inline] > > > > >> __vmalloc_area_node mm/vmalloc.c:3057 [inline] > > > > >> __vmalloc_node_range+0x81c/0xdb4 mm/vmalloc.c:3227 > > > > >> alloc_thread_stack_node kernel/fork.c:311 [inline] > > > > >> dup_task_struct kernel/fork.c:987 [inline] > > > > >> copy_process+0x210e/0x4068 kernel/fork.c:2097 > > > > >> kernel_clone+0xee/0x914 kernel/fork.c:2681 > > > > >> __do_sys_clone+0xec/0x120 kernel/fork.c:2822 > > > > >> sys_clone+0x32/0x44 kernel/fork.c:2790 > > > > >> ret_from_syscall+0x0/0x2 > > > > >> page last free stack trace: > > > > >> __reset_page_owner+0x4a/0xf8 mm/page_owner.c:148 > > > > >> reset_page_owner include/linux/page_owner.h:24 [inline] > > > > >> free_pages_prepare mm/page_alloc.c:1446 [inline] > > > > >> free_pcp_prepare+0x254/0x48e mm/page_alloc.c:1496 > > > > >> free_unref_page_prepare mm/page_alloc.c:3369 [inline] > > > > >> free_unref_page_list+0x11e/0x736 mm/page_alloc.c:3510 > > > > >> release_pages+0x85a/0xbb2 mm/swap.c:1076 > > > > >> free_pages_and_swap_cache+0x76/0x88 mm/swap_state.c:311 > > > > >> tlb_batch_pages_flush+0x86/0x10c mm/mmu_gather.c:97 > > > > >> tlb_flush_mmu_free mm/mmu_gather.c:292 [inline] > > > > >> tlb_flush_mmu mm/mmu_gather.c:299 [inline] > > > > >> tlb_finish_mmu+0xcc/0x280 mm/mmu_gather.c:391 > > > > >> exit_mmap+0x190/0x686 mm/mmap.c:3096 > > > > >> __mmput+0x98/0x290 kernel/fork.c:1207 > > > > >> mmput+0x74/0x88 kernel/fork.c:1229 > > > > >> exit_mm kernel/exit.c:563 [inline] > > > > >> do_exit+0x602/0x17be kernel/exit.c:854 > > > > >> do_group_exit+0x8e/0x15e kernel/exit.c:1012 > > > > >> __do_sys_exit_group kernel/exit.c:1023 [inline] > > > > >> __wake_up_parent+0x0/0x4a kernel/exit.c:1021 > > > > >> ret_from_syscall+0x0/0x2 > > > > >> > > > > >> Memory state around the buggy address: > > > > >> ff200000030a7880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00= 00 > > > > >> ff200000030a7900: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 f2= f2 > > > > >>> ff200000030a7980: 00 00 00 f3 f3 f3 f3 f3 00 00 00 00 00 00 00 = 00 > > > > >> ^ > > > > >> ff200000030a7a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00= 00 > > > > >> ff200000030a7a80: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1= f1 > > > > >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > > > >> > > > > >> > > > > >> --- > > > > >> This report is generated by a bot. It may contain errors. > > > > >> See https://goo.gl/tpsmEJ for more information about syzbot. > > > > >> syzbot engineers can be reached at syzkaller@googlegroups.com. > > > > >> > > > > >> syzbot will keep track of this issue. See: > > > > >> https://goo.gl/tpsmEJ#status for how to communicate with syzbot. > > > > >> > > > > >> If the bug is already fixed, let syzbot know by replying with: > > > > >> #syz fix: exact-commit-title > > > > >> > > > > >> If you want to change bug's subsystems, reply with: > > > > >> #syz set subsystems: new-subsystem > > > > >> (See the list of subsystem names on the web dashboard) > > > > >> > > > > >> If the bug is a duplicate of another bug, reply with: > > > > >> #syz dup: exact-subject-of-another-report > > > > >> > > > > >> If you want to undo deduplication, reply with: > > > > >> #syz undup > > > > >> > > > > >> -- > > > > >> You received this message because you are subscribed to the Goog= le Groups "syzkaller-bugs" group. > > > > >> To unsubscribe from this group and stop receiving emails from it= , send an email to syzkaller-bugs+unsubscribe@googlegroups.com. > > > > >> To view this discussion on the web visit https://groups.google.c= om/d/msgid/syzkaller-bugs/00000000000084706805fab08e27%40google.com. > > > > > _______________________________________________ > > > > > linux-riscv mailing list > > > > > linux-riscv@lists.infradead.org > > > > > http://lists.infradead.org/mailman/listinfo/linux-riscv