All of lore.kernel.org
 help / color / mirror / Atom feed
From: syzbot <syzbot+55b82aea13452e3d128f@syzkaller.appspotmail.com>
To: linux-kernel@vger.kernel.org, reiserfs-devel@vger.kernel.org,
	syzkaller-bugs@googlegroups.com
Subject: [syzbot] KASAN: use-after-free Read in leaf_paste_in_buffer
Date: Thu, 01 Dec 2022 03:54:41 -0800	[thread overview]
Message-ID: <000000000000e3af1a05eec2e287@google.com> (raw)

Hello,

syzbot found the following issue on:

HEAD commit:    04aa64375f48 drm/i915: fix TLB invalidation for Gen12 vide..
git tree:       upstream
console+strace: https://syzkaller.appspot.com/x/log.txt?x=120af47b880000
kernel config:  https://syzkaller.appspot.com/x/.config?x=2325e409a9a893e1
dashboard link: https://syzkaller.appspot.com/bug?extid=55b82aea13452e3d128f
compiler:       Debian clang version 13.0.1-++20220126092033+75e33f71c2da-1~exp1~20220126212112.63, GNU ld (GNU Binutils for Debian) 2.35.2
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=179f39bb880000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=1082d8d5880000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/c7931c6633f6/disk-04aa6437.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/9f73ec98f0cb/vmlinux-04aa6437.xz
kernel image: https://storage.googleapis.com/syzbot-assets/63f3355b068c/bzImage-04aa6437.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/897f7c1e79f7/mount_0.gz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+55b82aea13452e3d128f@syzkaller.appspotmail.com

REISERFS (device loop0): Using r5 hash to sort names
REISERFS (device loop0): Created .reiserfs_priv - reserved for xattr storage.
==================================================================
BUG: KASAN: use-after-free in leaf_paste_in_buffer+0x739/0xca0
Read of size 80 at addr ffff88806fa50fe0 by task syz-executor881/3646

CPU: 1 PID: 3646 Comm: syz-executor881 Not tainted 6.1.0-rc7-syzkaller-00102-g04aa64375f48 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106
 print_address_description+0x74/0x340 mm/kasan/report.c:284
 print_report+0x107/0x1f0 mm/kasan/report.c:395
 kasan_report+0xcd/0x100 mm/kasan/report.c:495
 kasan_check_range+0x2a7/0x2e0 mm/kasan/generic.c:189
 memcpy+0x25/0x60 mm/kasan/shadow.c:65
 leaf_paste_in_buffer+0x739/0xca0
 leaf_copy_dir_entries+0x6e2/0xbf0 fs/reiserfs/lbalance.c:108
 leaf_copy_boundary_item+0xb7c/0x20f0 fs/reiserfs/lbalance.c:168
 leaf_copy_items fs/reiserfs/lbalance.c:551 [inline]
 leaf_move_items+0xc74/0x1330 fs/reiserfs/lbalance.c:726
 leaf_shift_left+0xb7/0x420 fs/reiserfs/lbalance.c:750
 balance_leaf_left fs/reiserfs/do_balan.c:616 [inline]
 balance_leaf+0x1579/0x123a0 fs/reiserfs/do_balan.c:1409
 do_balance+0x2d6/0x8d0 fs/reiserfs/do_balan.c:1888
 reiserfs_paste_into_item+0x740/0x880 fs/reiserfs/stree.c:2159
 reiserfs_get_block+0x223f/0x5180 fs/reiserfs/inode.c:1069
 __block_write_begin_int+0x54c/0x1a80 fs/buffer.c:1991
 reiserfs_write_begin+0x247/0x510 fs/reiserfs/inode.c:2775
 generic_perform_write+0x2e4/0x5e0 mm/filemap.c:3753
 __generic_file_write_iter+0x176/0x400 mm/filemap.c:3881
 generic_file_write_iter+0xab/0x310 mm/filemap.c:3913
 call_write_iter include/linux/fs.h:2199 [inline]
 new_sync_write fs/read_write.c:491 [inline]
 vfs_write+0x7dc/0xc50 fs/read_write.c:584
 ksys_write+0x177/0x2a0 fs/read_write.c:637
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7ff595fcba39
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 11 15 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffefc311618 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 000000000000db17 RCX: 00007ff595fcba39
RDX: 000000000000fea7 RSI: 00000000200001c0 RDI: 0000000000000006
RBP: 0000000000000000 R08: 00007ffefc311640 R09: 00007ffefc311640
R10: 00007ffefc311640 R11: 0000000000000246 R12: 00007ffefc31163c
R13: 00007ffefc311670 R14: 00007ffefc311650 R15: 0000000000000006
 </TASK>

The buggy address belongs to the physical page:
page:ffffea0001be9400 refcount:6 mapcount:0 mapping:ffff88801f8128f8 index:0x214 pfn:0x6fa50
memcg:ffff888140150000
aops:def_blk_aops ino:700000
flags: 0xfff00000002010(lru|private|node=0|zone=1|lastcpupid=0x7ff)
raw: 00fff00000002010 ffffea0001be9388 ffffea00007a5508 ffff88801f8128f8
raw: 0000000000000214 ffff88807007fae0 00000006ffffffff ffff888140150000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 0, migratetype Movable, gfp_mask 0x148c48(GFP_NOFS|__GFP_NOFAIL|__GFP_COMP|__GFP_HARDWALL|__GFP_MOVABLE), pid 3646, tgid 3646 (syz-executor881), ts 56559691091, free_ts 56351514064
 prep_new_page mm/page_alloc.c:2539 [inline]
 get_page_from_freelist+0x742/0x7c0 mm/page_alloc.c:4291
 __alloc_pages+0x259/0x560 mm/page_alloc.c:5558
 folio_alloc+0x1a/0x50 mm/mempolicy.c:2295
 filemap_alloc_folio+0x7e/0x1c0 mm/filemap.c:971
 __filemap_get_folio+0x898/0x1260 mm/filemap.c:1965
 pagecache_get_page+0x28/0x260 mm/folio-compat.c:110
 find_or_create_page include/linux/pagemap.h:613 [inline]
 grow_dev_page+0xba/0x920 fs/buffer.c:946
 grow_buffers fs/buffer.c:1011 [inline]
 __getblk_slow fs/buffer.c:1038 [inline]
 __getblk_gfp+0x16c/0x290 fs/buffer.c:1333
 sb_getblk include/linux/buffer_head.h:356 [inline]
 get_empty_nodes+0x68a/0xd00 fs/reiserfs/fix_node.c:890
 fix_nodes+0x25e8/0x8920 fs/reiserfs/fix_node.c:2662
 reiserfs_insert_item+0xa78/0xcb0 fs/reiserfs/stree.c:2240
 reiserfs_new_inode+0x11c7/0x1cd0 fs/reiserfs/inode.c:2054
 reiserfs_create+0x39a/0x660 fs/reiserfs/namei.c:668
 lookup_open fs/namei.c:3413 [inline]
 open_last_lookups fs/namei.c:3481 [inline]
 path_openat+0x12d0/0x2df0 fs/namei.c:3711
 do_filp_open+0x264/0x4f0 fs/namei.c:3741
 do_sys_openat2+0x124/0x4e0 fs/open.c:1310
page last free stack trace:
 reset_page_owner include/linux/page_owner.h:24 [inline]
 free_pages_prepare mm/page_alloc.c:1459 [inline]
 free_pcp_prepare+0x80c/0x8f0 mm/page_alloc.c:1509
 free_unref_page_prepare mm/page_alloc.c:3387 [inline]
 free_unref_page_list+0xb4/0x7b0 mm/page_alloc.c:3529
 release_pages+0x232a/0x25c0 mm/swap.c:1055
 __pagevec_release+0x7d/0xf0 mm/swap.c:1075
 pagevec_release include/linux/pagevec.h:71 [inline]
 folio_batch_release include/linux/pagevec.h:135 [inline]
 shmem_undo_range+0x89a/0x2260 mm/shmem.c:946
 shmem_truncate_range mm/shmem.c:1034 [inline]
 shmem_evict_inode+0x27f/0xab0 mm/shmem.c:1143
 evict+0x2a4/0x620 fs/inode.c:664
 __dentry_kill+0x3b1/0x5b0 fs/dcache.c:607
 dentry_kill+0xbb/0x290
 dput+0x1f3/0x410 fs/dcache.c:913
 __fput+0x5e4/0x880 fs/file_table.c:328
 task_work_run+0x243/0x300 kernel/task_work.c:179
 ptrace_notify+0x29a/0x340 kernel/signal.c:2354
 ptrace_report_syscall include/linux/ptrace.h:420 [inline]
 ptrace_report_syscall_exit include/linux/ptrace.h:482 [inline]
 syscall_exit_work+0x8c/0xe0 kernel/entry/common.c:251
 syscall_exit_to_user_mode_prepare+0x63/0xc0 kernel/entry/common.c:278
 __syscall_exit_to_user_mode_work kernel/entry/common.c:283 [inline]
 syscall_exit_to_user_mode+0xa/0x60 kernel/entry/common.c:296

Memory state around the buggy address:
 ffff88806fa50f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff88806fa50f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff88806fa51000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                   ^
 ffff88806fa51080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff88806fa51100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================


---
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.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches

             reply	other threads:[~2022-12-01 11:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-01 11:54 syzbot [this message]
2023-03-13 22:42 ` [syzbot] [reiserfs?] KASAN: use-after-free Read in leaf_paste_in_buffer syzbot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=000000000000e3af1a05eec2e287@google.com \
    --to=syzbot+55b82aea13452e3d128f@syzkaller.appspotmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=reiserfs-devel@vger.kernel.org \
    --cc=syzkaller-bugs@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.