Re: KASAN: slab-out-of-bounds Write in tcp_v6_syn_recv_sock

From: Dmitry Vyukov
Date: Tue Jan 16 2018 - 02:43:30 EST


On Thu, Jan 4, 2018 at 12:31 AM, Cong Wang <xiyou.wangcong@xxxxxxxxx> wrote:
> 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.

FTR this has been assigned CVE-2018-5703