Re: KASAN: slab-out-of-bounds Write in tcp_v6_syn_recv_sock
From: Cong Wang
Date: Wed Jan 03 2018 - 18:31:40 EST
On Wed, Jan 3, 2018 at 12:55 PM, Ozgur <ozgur@xxxxxxxxxx> wrote:
>
>
> 03.01.2018, 21:57, "Cong Wang" <xiyou.wangcong@xxxxxxxxx>:
>> On Tue, Jan 2, 2018 at 3:58 PM, syzbot
>> <syzbot+6dc95bddc6976b800b0b@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
>>> Hello,
>>>
>>> syzkaller hit the following crash on
>>> 61233580f1f33c50e159c50e24d80ffd2ba2e06b
>>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/master
>>> compiler: gcc (GCC) 7.1.1 20170620
>>> .config is attached
>>> Raw console output is attached.
>>> C reproducer is attached
>>> syzkaller reproducer is attached. See https://goo.gl/kgGztJ
>>> for information about syzkaller reproducers
>>>
>>> IMPORTANT: if you fix the bug, please add the following tag to the commit:
>>> Reported-by: syzbot+6dc95bddc6976b800b0b@xxxxxxxxxxxxxxxxxxxxxxxxx
>>> It will help syzbot understand when the bug is fixed. See footer for
>>> details.
>>> If you forward the report, please keep this part and the footer.
>>>
>>> TCP: request_sock_TCPv6: Possible SYN flooding on port 20002. Sending
>>> cookies. Check SNMP counters.
>>> ==================================================================
>>> BUG: KASAN: slab-out-of-bounds in memcpy include/linux/string.h:344 [inline]
>>> BUG: KASAN: slab-out-of-bounds in tcp_v6_syn_recv_sock+0x628/0x23a0
>>> net/ipv6/tcp_ipv6.c:1144
>>> Write of size 160 at addr ffff8801cbdd7460 by task syzkaller545407/3196
>>>
>>> CPU: 1 PID: 3196 Comm: syzkaller545407 Not tainted 4.15.0-rc5+ #241
>>> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
>>> Google 01/01/2011
>>> Call Trace:
>>> <IRQ>
>>> __dump_stack lib/dump_stack.c:17 [inline]
>>> dump_stack+0x194/0x257 lib/dump_stack.c:53
>>> print_address_description+0x73/0x250 mm/kasan/report.c:252
>>> kasan_report_error mm/kasan/report.c:351 [inline]
>>> kasan_report+0x25b/0x340 mm/kasan/report.c:409
>>> check_memory_region_inline mm/kasan/kasan.c:260 [inline]
>>> check_memory_region+0x137/0x190 mm/kasan/kasan.c:267
>>> memcpy+0x37/0x50 mm/kasan/kasan.c:303
>>> memcpy include/linux/string.h:344 [inline]
>>> tcp_v6_syn_recv_sock+0x628/0x23a0 net/ipv6/tcp_ipv6.c:1144
>>
>> tls_init() changes sk->sk_prot from IPv6 to IPv4, which leads
>> to this bug. I guess IPv6 is not supported for TLS? If so, need
>> a check on proto in tls_init()...
>
> Hello,
>
> I think IPv6 supports with TLS.
> There was a previously posted commit by Mellanox:
>
> https://patchwork.ozlabs.org/patch/801530/
Good to know.
Can you resend the fix? It could probably fix another warning
reported by syzbot too.