| To: | Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.) |
| From: | Willy Tarreau <willy@xxxxxxxxx> |
| Date: | Sun, 12 Jun 2005 14:32:53 +0200 |
| Cc: | davem@xxxxxxxxxxxxx, xschmi00@xxxxxxxxxxxxxxxxxx, alastair@xxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx |
| In-reply-to: | <20050612120627.GA5858@xxxxxxxxxxxxxxxxxxx> |
| References: | <20050611074350.GD28759@xxxxxxxxxxxxxxxx> <E1DhBic-0005dp-00@xxxxxxxxxxxxxxxxxxxxxxxx> <20050611195144.GF28759@xxxxxxxxxxxxxxxx> <20050612081327.GA24384@xxxxxxxxxxxxxxxxxxx> <20050612083409.GA8220@xxxxxxxxxxxxxxxx> <20050612103020.GA25111@xxxxxxxxxxxxxxxxxxx> <20050612114039.GI28759@xxxxxxxxxxxxxxxx> <20050612120627.GA5858@xxxxxxxxxxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mutt/1.4i |
On Sun, Jun 12, 2005 at 10:06:27PM +1000, Herbert Xu wrote: > On Sun, Jun 12, 2005 at 01:40:39PM +0200, Willy Tarreau wrote: > > > > Sorry Herbert, but both RFC793 page 32 figure 9 and my Linux box disagree > > with this statement. Look: at line 5, A rejects the SYN-ACK because the > > ACK is wrong during the session setup. > > Look at the first check inside th->ack in tcp_rcv_synsent_state_process. Herbert, I perfectly agree with this check and it's consistent with what I observe. But as you know, there's a difference between resetting a session and sending an RST to say that we refuse a segment. This check does not kill the session, it sends an RST whose SEQ is equal to the SYN-ACK's ACK. It's possible you though the "reset_and_undo" label was used to kill the session, but it's not the case (although the naming is not clear). So if the remote end was the one which sent the SYN-ACK, it will clear its session. If it has been spoofed, it will ignore the RST because in turn, the SEQ will not be within its window. Try it by yourself if you don't believe me. I've done lots of tests with hping2 and I've never managed to kill a session with both a SEQ and ACK outside the windows. Regards, Willy |
| Previous by Date: | Re: [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.), Thomas Graf |
|---|---|
| Next by Date: | Re: [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.), Herbert Xu |
| Previous by Thread: | Re: [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.), Herbert Xu |
| Next by Thread: | Re: [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.), Herbert Xu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |