KASAN: invalid-free in dbUnmount

6 vues
Accéder directement au premier message non lu

syzbot

non lue,
28 nov. 2022, 13:08:4128/11/2022
à syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 3f8a27f9e27b Linux 4.19.211
git tree: linux-4.19.y
console output: https://syzkaller.appspot.com/x/log.txt?x=12a70187880000
kernel config: https://syzkaller.appspot.com/x/.config?x=9b9277b418617afe
dashboard link: https://syzkaller.appspot.com/bug?extid=ea731a6641531af62f80
compiler: gcc version 10.2.1 20210110 (Debian 10.2.1-6)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17528825880000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=134b39bb880000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/98c0bdb4abb3/disk-3f8a27f9.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/ea228ff02669/vmlinux-3f8a27f9.xz
mounted in repro: https://storage.googleapis.com/syzbot-assets/93c2a3d4b1b7/mount_0.gz

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

RDX: 0000000000000000 RSI: 0000000020000080 RDI: 0000000000000000
RBP: 00007fff8fc88990 R08: 0000000000000000 R09: 0000000000000039
R10: 0000000000800020 R11: 0000000000000246 R12: 0000000000000001
R13: 00007fff8fc88ac0 R14: 00007f4d81d68128 R15: 00007fff8fc889c0
==================================================================
BUG: KASAN: double-free or invalid-free in dbUnmount+0xff/0x140 fs/jfs/jfs_dmap.c:255

CPU: 1 PID: 8091 Comm: syz-executor759 Not tainted 4.19.211-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1fc/0x2ef lib/dump_stack.c:118
print_address_description.cold+0x54/0x219 mm/kasan/report.c:256
kasan_report_invalid_free+0x61/0xa0 mm/kasan/report.c:336
__kasan_slab_free+0x1d0/0x1f0 mm/kasan/kasan.c:501
__cache_free mm/slab.c:3503 [inline]
kfree+0xcc/0x210 mm/slab.c:3822
dbUnmount+0xff/0x140 fs/jfs/jfs_dmap.c:255
jfs_umount+0x1cc/0x310 fs/jfs/jfs_umount.c:102
jfs_put_super+0x61/0x140 fs/jfs/super.c:223
generic_shutdown_super+0x144/0x370 fs/super.c:456
kill_block_super+0x97/0xf0 fs/super.c:1185
deactivate_locked_super+0x94/0x160 fs/super.c:329
deactivate_super+0x174/0x1a0 fs/super.c:360
cleanup_mnt+0x1a8/0x290 fs/namespace.c:1098
task_work_run+0x148/0x1c0 kernel/task_work.c:113
exit_task_work include/linux/task_work.h:22 [inline]
do_exit+0xbf3/0x2be0 kernel/exit.c:870
do_group_exit+0x125/0x310 kernel/exit.c:967
__do_sys_exit_group kernel/exit.c:978 [inline]
__se_sys_exit_group kernel/exit.c:976 [inline]
__x64_sys_exit_group+0x3a/0x50 kernel/exit.c:976
do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7f4d81d2af39
Code: Bad RIP value.
RSP: 002b:00007fff8fc88968 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 00007f4d81d9e3d0 RCX: 00007f4d81d2af39
RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001
RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 0000000000000039
R10: 0000000000800020 R11: 0000000000000246 R12: 00007f4d81d9e3d0
R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001

Allocated by task 8091:
kmem_cache_alloc_trace+0x12f/0x380 mm/slab.c:3625
kmalloc include/linux/slab.h:515 [inline]
dbMount+0x4d/0x880 fs/jfs/jfs_dmap.c:176
jfs_mount+0x124/0x3d0 fs/jfs/jfs_mount.c:133
jfs_fill_super+0x55c/0xb50 fs/jfs/super.c:589
mount_bdev+0x2fc/0x3b0 fs/super.c:1158
mount_fs+0xa3/0x310 fs/super.c:1261
vfs_kern_mount.part.0+0x68/0x470 fs/namespace.c:961
vfs_kern_mount fs/namespace.c:951 [inline]
do_new_mount fs/namespace.c:2492 [inline]
do_mount+0x115c/0x2f50 fs/namespace.c:2822
ksys_mount+0xcf/0x130 fs/namespace.c:3038
__do_sys_mount fs/namespace.c:3052 [inline]
__se_sys_mount fs/namespace.c:3049 [inline]
__x64_sys_mount+0xba/0x150 fs/namespace.c:3049
do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe

Freed by task 8091:
__cache_free mm/slab.c:3503 [inline]
kfree+0xcc/0x210 mm/slab.c:3822
dbUnmount+0xff/0x140 fs/jfs/jfs_dmap.c:255
jfs_mount_rw+0x244/0x4b0 fs/jfs/jfs_mount.c:262
jfs_remount+0x51c/0x640 fs/jfs/super.c:488
do_remount_sb+0x1a0/0x6a0 fs/super.c:888
do_remount fs/namespace.c:2313 [inline]
do_mount+0x1a62/0x2f50 fs/namespace.c:2813
ksys_mount+0xcf/0x130 fs/namespace.c:3038
__do_sys_mount fs/namespace.c:3052 [inline]
__se_sys_mount fs/namespace.c:3049 [inline]
__x64_sys_mount+0xba/0x150 fs/namespace.c:3049
do_syscall_64+0xf9/0x620 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe

The buggy address belongs to the object at ffff8880b02f1240
which belongs to the cache kmalloc-2048 of size 2048
The buggy address is located 0 bytes inside of
2048-byte region [ffff8880b02f1240, ffff8880b02f1a40)
The buggy address belongs to the page:
page:ffffea0002c0bc00 count:1 mapcount:0 mapping:ffff88813bff0c40 index:0x0 compound_mapcount: 0
flags: 0xfff00000008100(slab|head)
raw: 00fff00000008100 ffffea0002534208 ffff88813bff1948 ffff88813bff0c40
raw: 0000000000000000 ffff8880b02f0140 0000000100000003 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
ffff8880b02f1100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff8880b02f1180: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
>ffff8880b02f1200: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
^
ffff8880b02f1280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff8880b02f1300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================


---
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 syzk...@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
Répondre à tous
Répondre à l'auteur
Transférer
0 nouveau message