Messages in this thread |  | | | Date | Sun, 12 Jun 2005 15:36:54 +0200 | | From | Willy Tarreau <> | | Subject | Re: [PATCH] fix small DoS on connect() (was Re: BUG: Unusual TCP Connect() results.) |
| |
On Sun, Jun 12, 2005 at 11:13:23PM +1000, Herbert Xu wrote: > On Sun, Jun 12, 2005 at 02:32:53PM +0200, Willy Tarreau wrote: > > > > 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. > > This is what should happen: > > 1) client A sends SYN to server B. > 2) attcker C sends spoofed SYN-ACK to client A purporting to be server B. > 3) client A sends RST to server B.
Agreed till here.
> The RST packet is sent by client A using its sequence numbers. Therefore > it will pass the sequence number check on server B. > > 4) server B resets the connection.
No, precisely the RST sent by A will take its SEQ from C's ACK number. This is why B will *not* reset the connection (again, tested) if C's ACK was not within B's window.
Cheers, Willy
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |