[v6.1] KASAN: use-after-free Read in rose_get_neigh

0 views
Skip to first unread message

syzbot

unread,
Mar 17, 2025, 3:45:28 PMMar 17
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 344a09659766 Linux 6.1.131
git tree: linux-6.1.y
console output: https://syzkaller.appspot.com/x/log.txt?x=1300de54580000
kernel config: https://syzkaller.appspot.com/x/.config?x=14d5dbae75afa499
dashboard link: https://syzkaller.appspot.com/bug?extid=a30154b4da062a2cc7b2
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/8c94453bbad3/disk-344a0965.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/6bf26518c790/vmlinux-344a0965.xz
kernel image: https://storage.googleapis.com/syzbot-assets/424da9a470eb/Image-344a0965.gz.xz

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

==================================================================
BUG: KASAN: use-after-free in rose_get_neigh+0x1a4/0x5ac net/rose/rose_route.c:692
Read of size 1 at addr ffff0000f23aa830 by task syz.2.557/6501

CPU: 0 PID: 6501 Comm: syz.2.557 Not tainted 6.1.131-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025
Call trace:
dump_backtrace+0x1c8/0x1f4 arch/arm64/kernel/stacktrace.c:158
show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
print_address_description mm/kasan/report.c:316 [inline]
print_report+0x174/0x4c0 mm/kasan/report.c:427
kasan_report+0xd4/0x130 mm/kasan/report.c:531
__asan_report_load1_noabort+0x2c/0x38 mm/kasan/report_generic.c:348
rose_get_neigh+0x1a4/0x5ac net/rose/rose_route.c:692
rose_connect+0x3b8/0xe44 net/rose/af_rose.c:816
__sys_connect_file net/socket.c:2011 [inline]
__sys_connect+0x268/0x290 net/socket.c:2028
__do_sys_connect net/socket.c:2038 [inline]
__se_sys_connect net/socket.c:2035 [inline]
__arm64_sys_connect+0x7c/0x94 net/socket.c:2035
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x98/0x2bc arch/arm64/kernel/syscall.c:52
el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:140
do_el0_svc+0x58/0x13c arch/arm64/kernel/syscall.c:204
el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

Allocated by task 6085:
kasan_save_stack mm/kasan/common.c:45 [inline]
kasan_set_track+0x4c/0x80 mm/kasan/common.c:52
kasan_save_alloc_info+0x24/0x30 mm/kasan/generic.c:505
____kasan_kmalloc mm/kasan/common.c:374 [inline]
__kasan_kmalloc+0xac/0xc4 mm/kasan/common.c:383
kasan_kmalloc include/linux/kasan.h:211 [inline]
kmalloc_trace+0x7c/0x94 mm/slab_common.c:1031
kmalloc include/linux/slab.h:563 [inline]
rose_add_node+0x200/0xbc0 net/rose/rose_route.c:85
rose_rt_ioctl+0xa6c/0xec0 net/rose/rose_route.c:747
rose_ioctl+0x400/0xc7c net/rose/af_rose.c:1380
sock_do_ioctl+0x134/0x2dc net/socket.c:1204
sock_ioctl+0x4f0/0x85c net/socket.c:1321
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:870 [inline]
__se_sys_ioctl fs/ioctl.c:856 [inline]
__arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:856
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x98/0x2bc arch/arm64/kernel/syscall.c:52
el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:140
do_el0_svc+0x58/0x13c arch/arm64/kernel/syscall.c:204
el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

Freed by task 6492:
kasan_save_stack mm/kasan/common.c:45 [inline]
kasan_set_track+0x4c/0x80 mm/kasan/common.c:52
kasan_save_free_info+0x38/0x5c mm/kasan/generic.c:516
____kasan_slab_free+0x144/0x1c0 mm/kasan/common.c:236
__kasan_slab_free+0x18/0x28 mm/kasan/common.c:244
kasan_slab_free include/linux/kasan.h:177 [inline]
slab_free_hook mm/slub.c:1724 [inline]
slab_free_freelist_hook mm/slub.c:1750 [inline]
slab_free mm/slub.c:3661 [inline]
__kmem_cache_free+0x2c0/0x4b4 mm/slub.c:3674
kfree+0xcc/0x1b8 mm/slab_common.c:988
rose_remove_neigh+0x23c/0x2b8
rose_rt_device_down+0x5cc/0x628 net/rose/rose_route.c:522
rose_device_event+0x5dc/0x690 net/rose/af_rose.c:248
notifier_call_chain kernel/notifier.c:87 [inline]
raw_notifier_call_chain+0xd4/0x164 kernel/notifier.c:455
call_netdevice_notifiers_info net/core/dev.c:2001 [inline]
call_netdevice_notifiers_extack net/core/dev.c:2039 [inline]
call_netdevice_notifiers net/core/dev.c:2053 [inline]
dev_close_many+0x300/0x46c net/core/dev.c:1601
dev_close+0x174/0x250 net/core/dev.c:1623
bpq_device_event+0x318/0x820 drivers/net/hamradio/bpqether.c:547
notifier_call_chain kernel/notifier.c:87 [inline]
raw_notifier_call_chain+0xd4/0x164 kernel/notifier.c:455
call_netdevice_notifiers_info net/core/dev.c:2001 [inline]
call_netdevice_notifiers_extack net/core/dev.c:2039 [inline]
call_netdevice_notifiers net/core/dev.c:2053 [inline]
dev_close_many+0x300/0x46c net/core/dev.c:1601
dev_close+0x174/0x250 net/core/dev.c:1623
bond_setup_by_slave+0x70/0x39c drivers/net/bonding/bond_main.c:1541
bond_enslave+0x62c/0x3044 drivers/net/bonding/bond_main.c:1925
bond_do_ioctl+0x26c/0xccc drivers/net/bonding/bond_main.c:4593
dev_siocbond net/core/dev_ioctl.c:272 [inline]
dev_ifsioc+0xc90/0xfb4 net/core/dev_ioctl.c:420
dev_ioctl+0x4d8/0xd34 net/core/dev_ioctl.c:588
sock_do_ioctl+0x1dc/0x2dc net/socket.c:1218
sock_ioctl+0x4f0/0x85c net/socket.c:1321
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:870 [inline]
__se_sys_ioctl fs/ioctl.c:856 [inline]
__arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:856
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x98/0x2bc arch/arm64/kernel/syscall.c:52
el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:140
do_el0_svc+0x58/0x13c arch/arm64/kernel/syscall.c:204
el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

The buggy address belongs to the object at ffff0000f23aa800
which belongs to the cache kmalloc-512 of size 512
The buggy address is located 48 bytes inside of
512-byte region [ffff0000f23aa800, ffff0000f23aaa00)

The buggy address belongs to the physical page:
page:00000000caebf522 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff0000f23a8400 pfn:0x1323a8
head:00000000caebf522 order:2 compound_mapcount:0 compound_pincount:0
flags: 0x5ffc00000010200(slab|head|node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000010200 fffffc0003023808 fffffc0003521708 ffff0000c0002600
raw: ffff0000f23a8400 0000000000100007 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
ffff0000f23aa700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff0000f23aa780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff0000f23aa800: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
^
ffff0000f23aa880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff0000f23aa900: 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.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup
Reply all
Reply to author
Forward
0 new messages