lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 06 Jan 2010 15:04:53 -0800 (PST)
From:	David Miller <davem@...emloft.net>
To:	netdev@...r.kernel.org
Cc:	nhorman@...driver.com, ilpo.jarvinen@...sinki.fi
Subject: Re: BSD 4.2 style TCP keepalives

From: David Miller <davem@...emloft.net>
Date: Wed, 06 Jan 2010 00:23:28 -0800 (PST)

> Special casing the seq == end_seq == tp->rcv_wup case using
> something like:
> 
> 		(after(end_seq, tp->rcv_wup) ||
> 		 (end_seq == tp->rcv_wup && seq == end_seq)) &&
> 
> might work, but I'm not confident that's exactly what we want at the
> moment, as it partially defeats what this code is trying to do (let us
> accept URG/FIN/RST after seq and end_seq are truncated to the window).

I did some more research and everything I've said here turns
out to be moot.

We should be ACK'ing these things anyways.  Here is why:

1) if tcp_sequence() accepts the sequence we continue on in
   tcp_established()

2) We make it to tcp_data_queue() unless tcp_ack() finds that the
   ACK sequence is invalid (it covers data we never sent).

3) tcp_data_queue() should make it to, and hit, this conditional:

	if (!after(TCP_SKB_CB(skb)->end_seq, tp->rcv_nxt)) {

   which will schedule an ACK the same exact way we would if
   tcp_sequence() rejected the sequence range.

So it's a mystery why we aren't responding to Windows 2000's
BSD 4.2 style zero window probes.

Can someone please validate my analysis?

Someone with access to a system exhibiting this will probably need to
do some diagnostics to figure out what's going on.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ