syzbot


KASAN: global-out-of-bounds Read in mac802154_header_create (2)

Status: upstream: reported on 2024/09/04 14:30
Subsystems: wpan
[Documentation on labels]
Reported-by: syzbot+844d670c418e0353c6a8@syzkaller.appspotmail.com
First crash: 81d, last: 21d
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [wpan?] KASAN: global-out-of-bounds Read in mac802154_header_create (2) 0 (1) 2024/09/04 14:30
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: global-out-of-bounds Read in mac802154_header_create wpan 4 770d 932d 0/28 auto-obsoleted due to no activity on 2023/02/09 08:49

Sample crash report:
==================================================================
BUG: KASAN: global-out-of-bounds in get_unaligned_be64 include/asm-generic/unaligned.h:67 [inline]
BUG: KASAN: global-out-of-bounds in ieee802154_be64_to_le64 include/net/mac802154.h:363 [inline]
BUG: KASAN: global-out-of-bounds in mac802154_header_create+0x50d/0x540 net/mac802154/iface.c:448
Read of size 8 at addr ffffffff8bf93980 by task dhcpcd/5055

CPU: 2 UID: 0 PID: 5055 Comm: dhcpcd Not tainted 6.11.0-rc5-syzkaller-00219-g1934261d8974 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:93 [inline]
 dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:119
 print_address_description mm/kasan/report.c:377 [inline]
 print_report+0xc3/0x620 mm/kasan/report.c:488
 kasan_report+0xd9/0x110 mm/kasan/report.c:601
 get_unaligned_be64 include/asm-generic/unaligned.h:67 [inline]
 ieee802154_be64_to_le64 include/net/mac802154.h:363 [inline]
 mac802154_header_create+0x50d/0x540 net/mac802154/iface.c:448
 dev_hard_header include/linux/netdevice.h:3159 [inline]
 vlan_dev_hard_header+0x13f/0x520 net/8021q/vlan_dev.c:83
 dev_hard_header include/linux/netdevice.h:3159 [inline]
 lapbeth_data_transmit+0x2a0/0x350 drivers/net/wan/lapbether.c:257
 lapb_data_transmit+0x93/0xc0 net/lapb/lapb_iface.c:447
 lapb_transmit_buffer+0xce/0x390 net/lapb/lapb_out.c:149
 lapb_send_control+0x1c8/0x320 net/lapb/lapb_subr.c:251
 lapb_establish_data_link+0xeb/0x110 net/lapb/lapb_out.c:163
 lapb_device_event+0x398/0x570 net/lapb/lapb_iface.c:512
 notifier_call_chain+0xb9/0x410 kernel/notifier.c:93
 call_netdevice_notifiers_info+0xbe/0x140 net/core/dev.c:1994
 call_netdevice_notifiers_extack net/core/dev.c:2032 [inline]
 call_netdevice_notifiers net/core/dev.c:2046 [inline]
 __dev_notify_flags+0x12d/0x2e0 net/core/dev.c:8877
 dev_change_flags+0x10c/0x160 net/core/dev.c:8915
 devinet_ioctl+0x127a/0x1f10 net/ipv4/devinet.c:1177
 inet_ioctl+0x3aa/0x3f0 net/ipv4/af_inet.c:1003
 sock_do_ioctl+0x116/0x280 net/socket.c:1222
 sock_ioctl+0x22e/0x6c0 net/socket.c:1341
 vfs_ioctl fs/ioctl.c:51 [inline]
 __do_sys_ioctl fs/ioctl.c:907 [inline]
 __se_sys_ioctl fs/ioctl.c:893 [inline]
 __x64_sys_ioctl+0x193/0x220 fs/ioctl.c:893
 do_syscall_x64 arch/x86/entry/common.c:52 [inline]
 do_syscall_64+0xcd/0x250 arch/x86/entry/common.c:83
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f579ea11d49
Code: 5c c3 48 8d 44 24 08 48 89 54 24 e0 48 89 44 24 c0 48 8d 44 24 d0 48 89 44 24 c8 b8 10 00 00 00 c7 44 24 b8 10 00 00 00 0f 05 <41> 89 c0 3d 00 f0 ff ff 76 10 48 8b 15 ae 60 0d 00 f7 d8 41 83 c8
RSP: 002b:00007fffb68eedc8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f579e9436c0 RCX: 00007f579ea11d49
RDX: 00007fffb68fefb8 RSI: 0000000000008914 RDI: 000000000000000c
RBP: 00007fffb690f178 R08: 00007fffb68fef78 R09: 00007fffb68fef28
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fffb68fefb8 R14: 0000000000000028 R15: 0000000000008914
 </TASK>

The buggy address belongs to the variable:
 bcast_addr+0x0/0x14a0

The buggy address belongs to the physical page:
page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0xbf93
flags: 0xfff00000002000(reserved|node=0|zone=1|lastcpupid=0x7ff)
raw: 00fff00000002000 ffffea00002fe4c8 ffffea00002fe4c8 0000000000000000
raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner info is not present (never set?)

Memory state around the buggy address:
 ffffffff8bf93880: 00 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9 f9
 ffffffff8bf93900: f9 f9 f9 f9 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9
>ffffffff8bf93980: 06 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 06 f9 f9
                   ^
 ffffffff8bf93a00: f9 f9 f9 f9 03 f9 f9 f9 f9 f9 f9 f9 00 00 00 00
 ffffffff8bf93a80: 00 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 00 04 f9 f9
==================================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/09/01 00:52 upstream 1934261d8974 1eda0d14 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream KASAN: global-out-of-bounds Read in mac802154_header_create
2024/10/30 12:55 net c05c62850a8f 66aeb999 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-this-kasan-gce KASAN: null-ptr-deref Write in mac802154_header_create
2024/10/09 15:18 net-next 36efaca9cb28 402f1df0 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-kasan-gce KASAN: null-ptr-deref Write in mac802154_header_create
* Struck through repros no longer work on HEAD.