KASAN: slab-out-of-bounds Read in bpf_skb_change_head

From: syzbot
Date: Wed Jun 13 2018 - 18:17:08 EST


Hello,

syzbot found the following crash on:

HEAD commit: 75d4e704fa8d netdev-FAQ: clarify DaveM's position for stab..
git tree: bpf-next
console output: https://syzkaller.appspot.com/x/log.txt?x=16bd21af800000
kernel config: https://syzkaller.appspot.com/x/.config?x=a601a80fec461d44
dashboard link: https://syzkaller.appspot.com/bug?extid=567faa843005dda30737
compiler: gcc (GCC) 8.0.1 20180413 (experimental)
syzkaller repro:https://syzkaller.appspot.com/x/repro.syz?x=1039185f800000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=11e85cff800000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+567faa843005dda30737@xxxxxxxxxxxxxxxxxxxxxxxxx

random: sshd: uninitialized urandom read (32 bytes read)
random: sshd: uninitialized urandom read (32 bytes read)
random: sshd: uninitialized urandom read (32 bytes read)
random: sshd: uninitialized urandom read (32 bytes read)
==================================================================
BUG: KASAN: slab-out-of-bounds in ____bpf_skb_change_head net/core/filter.c:2921 [inline]
BUG: KASAN: slab-out-of-bounds in bpf_skb_change_head+0x80c/0x9d0 net/core/filter.c:2917
Read of size 4 at addr ffff8801d94ea680 by task syz-executor991/4551

CPU: 0 PID: 4551 Comm: syz-executor991 Not tainted 4.17.0-rc7+ #38
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
print_address_description+0x6c/0x20b mm/kasan/report.c:256
kasan_report_error mm/kasan/report.c:354 [inline]
kasan_report.cold.7+0x242/0x2fe mm/kasan/report.c:412
__asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:432
____bpf_skb_change_head net/core/filter.c:2921 [inline]
bpf_skb_change_head+0x80c/0x9d0 net/core/filter.c:2917

Allocated by task 0:
(stack is not available)

Freed by task 0:
(stack is not available)

The buggy address belongs to the object at ffff8801d94ea580
which belongs to the cache skbuff_head_cache of size 232
The buggy address is located 24 bytes to the right of
232-byte region [ffff8801d94ea580, ffff8801d94ea668)
The buggy address belongs to the page:
page:ffffea0007653a80 count:1 mapcount:0 mapping:ffff8801d94ea080 index:0x0
flags: 0x2fffc0000000100(slab)
raw: 02fffc0000000100 ffff8801d94ea080 0000000000000000 000000010000000c
raw: ffffea0006b2e720 ffffea00076595e0 ffff8801d9450e40 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
ffff8801d94ea580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff8801d94ea600: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff8801d94ea680: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
^
ffff8801d94ea700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
ffff8801d94ea780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================


---
This bug 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@xxxxxxxxxxxxxxxxx

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#bug-status-tracking for how to communicate with syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches