Date: Thu, 06 Aug 2026 09:09:15 +0000 From: bugzilla-noreply@freebsd.org To: net@FreeBSD.org Subject: [Bug 296594] TCP: RFC 5961 sends a challenge ACK instead of resetting when a valid RST arrives with SEG.SEQ == RCV.NXT and the receiver has delayed-ACKed data, leaving the connection half-open Message-ID: <bug-296594-7501-TNVfu58JIt@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-296594-7501@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296594 --- Comment #11 from commit-hook@FreeBSD.org --- A commit in branch stable/15 references this bug: URL: https://cgit.FreeBSD.org/src/commit/?id=9ac39192d49643def7958961e4a55f9f9d4b0c11 commit 9ac39192d49643def7958961e4a55f9f9d4b0c11 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2026-08-03 11:07:32 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2026-08-06 09:07:41 +0000 tcp: improve SEG.SEQ validation for RST segments A RST segment can be sent in response to (a) received segment or (b) by the upper layer protocol. The SEG.SEQ validation consists of two checks: (1) the in-window check of SEG.SEQ and (2) the exact match check of SEG.SEQ. For the in-window check (1), the left edge of the window needs to be based on tp->last_ack_sent to cover the delayed ACK case, whereas the right edge needs to be based on tp->rcv_nxt + tp->rcv_wnd. This both assumes that tp->rcv_wnd is not zero. For the special case of tp->rcv_wnd being zero, add checks against tp->last_ack_sent for (a) and on tp->rcv_nxt for (b). This applies to all TCP stacks. When the exact match (2) of SEG.SEQ is performed, it should be based on tp->last_ack_sent for (a) and on tp->rcv_nxt for (b). To cover both, check for both. Add this only to the base stack, since the RACK and BBR stacks already do this. PR: 296594 Reviewed by: rscheff Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D58594 (cherry picked from commit c9df1a6cf9be9d44eacc8616ebba1cd19010c7fc) sys/netinet/tcp_input.c | 18 ++++++++++++------ sys/netinet/tcp_stacks/rack_bbr_common.c | 22 ++++++++++++++-------- 2 files changed, 26 insertions(+), 14 deletions(-) -- You are receiving this mail because: You are on the CC list for the bug.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-296594-7501-TNVfu58JIt>
