netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* for 3.0 : please add "c16a98e ipv6: tcp: fix panic in SYN processing"
@ 2013-10-18 14:04 Willy Tarreau
  2013-10-18 14:34 ` Greg Kroah-Hartman
  0 siblings, 1 reply; 3+ messages in thread
From: Willy Tarreau @ 2013-10-18 14:04 UTC (permalink / raw)
  To: Greg Kroah-Hartman, David Miller; +Cc: Eric Dumazet, netdev, stable

Greg, David,

one of our customers faced a panic in latest 2.6.32 when both somaxconn
and the listen backlog are large on an IPv6 socket. It was also reported
by one haproxy user on the latest RHEL6 kernel a few months ago. We found
that the same bug affects 3.0 up to and including 3.0.100.

Eric had already spotted that bug and fixed it in 3.2 with the following
patch :

  commit c16a98ed91597b40b22b540c6517103497ef8e74
  Author: Eric Dumazet <eric.dumazet@gmail.com>
  Date:   Wed Nov 23 15:49:31 2011 -0500

    ipv6: tcp: fix panic in SYN processing
    
    commit 72a3effaf633bc ([NET]: Size listen hash tables using backlog
    hint) added a bug allowing inet6_synq_hash() to return an out of bound
    array index, because of u16 overflow.
    
    Bug can happen if system admins set net.core.somaxconn &
    net.ipv4.tcp_max_syn_backlog sysctls to values greater than 65536
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

In practice, the bug extends to lower values as well (32768 and above),
because reqsk_queue_alloc() can round the number of entries to double of
the backlog by doing roundup_pow_of_two(backlog+1), resulting in
inet6_csk_search_req() calling inet6_synq_hash() with too large an integer.

Could we please apply it to 3.0 before it finishes its life ?

Thanks,
Willy

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: for 3.0 : please add "c16a98e ipv6: tcp: fix panic in SYN processing"
  2013-10-18 14:04 for 3.0 : please add "c16a98e ipv6: tcp: fix panic in SYN processing" Willy Tarreau
@ 2013-10-18 14:34 ` Greg Kroah-Hartman
  2013-10-18 17:31   ` David Miller
  0 siblings, 1 reply; 3+ messages in thread
From: Greg Kroah-Hartman @ 2013-10-18 14:34 UTC (permalink / raw)
  To: Willy Tarreau; +Cc: David Miller, Eric Dumazet, netdev, stable

On Fri, Oct 18, 2013 at 04:04:42PM +0200, Willy Tarreau wrote:
> Greg, David,
> 
> one of our customers faced a panic in latest 2.6.32 when both somaxconn
> and the listen backlog are large on an IPv6 socket. It was also reported
> by one haproxy user on the latest RHEL6 kernel a few months ago. We found
> that the same bug affects 3.0 up to and including 3.0.100.
> 
> Eric had already spotted that bug and fixed it in 3.2 with the following
> patch :
> 
>   commit c16a98ed91597b40b22b540c6517103497ef8e74
>   Author: Eric Dumazet <eric.dumazet@gmail.com>
>   Date:   Wed Nov 23 15:49:31 2011 -0500
> 
>     ipv6: tcp: fix panic in SYN processing
>     
>     commit 72a3effaf633bc ([NET]: Size listen hash tables using backlog
>     hint) added a bug allowing inet6_synq_hash() to return an out of bound
>     array index, because of u16 overflow.
>     
>     Bug can happen if system admins set net.core.somaxconn &
>     net.ipv4.tcp_max_syn_backlog sysctls to values greater than 65536
>     
>     Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> In practice, the bug extends to lower values as well (32768 and above),
> because reqsk_queue_alloc() can round the number of entries to double of
> the backlog by doing roundup_pow_of_two(backlog+1), resulting in
> inet6_csk_search_req() calling inet6_synq_hash() with too large an integer.
> 
> Could we please apply it to 3.0 before it finishes its life ?

Unless David objects, I can queue this up just in time for the last
3.0.stable.

David?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: for 3.0 : please add "c16a98e ipv6: tcp: fix panic in SYN processing"
  2013-10-18 14:34 ` Greg Kroah-Hartman
@ 2013-10-18 17:31   ` David Miller
  0 siblings, 0 replies; 3+ messages in thread
From: David Miller @ 2013-10-18 17:31 UTC (permalink / raw)
  To: gregkh; +Cc: w, eric.dumazet, netdev, stable

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Fri, 18 Oct 2013 07:34:33 -0700

> On Fri, Oct 18, 2013 at 04:04:42PM +0200, Willy Tarreau wrote:
>> Greg, David,
>> 
>> one of our customers faced a panic in latest 2.6.32 when both somaxconn
>> and the listen backlog are large on an IPv6 socket. It was also reported
>> by one haproxy user on the latest RHEL6 kernel a few months ago. We found
>> that the same bug affects 3.0 up to and including 3.0.100.
>> 
>> Eric had already spotted that bug and fixed it in 3.2 with the following
>> patch :
>> 
>>   commit c16a98ed91597b40b22b540c6517103497ef8e74
>>   Author: Eric Dumazet <eric.dumazet@gmail.com>
>>   Date:   Wed Nov 23 15:49:31 2011 -0500
>> 
>>     ipv6: tcp: fix panic in SYN processing
>>     
>>     commit 72a3effaf633bc ([NET]: Size listen hash tables using backlog
>>     hint) added a bug allowing inet6_synq_hash() to return an out of bound
>>     array index, because of u16 overflow.
>>     
>>     Bug can happen if system admins set net.core.somaxconn &
>>     net.ipv4.tcp_max_syn_backlog sysctls to values greater than 65536
>>     
>>     Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
>>     Signed-off-by: David S. Miller <davem@davemloft.net>
>> 
>> In practice, the bug extends to lower values as well (32768 and above),
>> because reqsk_queue_alloc() can round the number of entries to double of
>> the backlog by doing roundup_pow_of_two(backlog+1), resulting in
>> inet6_csk_search_req() calling inet6_synq_hash() with too large an integer.
>> 
>> Could we please apply it to 3.0 before it finishes its life ?
> 
> Unless David objects, I can queue this up just in time for the last
> 3.0.stable.
> 
> David?

No objections.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-10-18 17:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-18 14:04 for 3.0 : please add "c16a98e ipv6: tcp: fix panic in SYN processing" Willy Tarreau
2013-10-18 14:34 ` Greg Kroah-Hartman
2013-10-18 17:31   ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).