]> git.ipfire.org Git - thirdparty/linux.git/commit
netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction...
authorHamza Mahfooz <hamzamahfooz@linux.microsoft.com>
Mon, 11 May 2026 14:43:14 +0000 (10:43 -0400)
committerFlorian Westphal <fw@strlen.de>
Fri, 22 May 2026 10:27:55 +0000 (12:27 +0200)
commitbed6e04be8e6b9133d8b16d5a42d0e0ce674fa9a
treefcfa177ffe3869988061bcf67dab40b7bb1bdabc
parent68993ced0f618e36cf33388f1e50223e5e6e78cc
netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check

An unintended behavior in the TCP conntrack state machine allows a
connection to be forced into the CLOSE state using an RST packet with an
invalid sequence number.

Specifically, after a SYN packet is observed, an RST with an invalid SEQ
can transition the conntrack entry to TCP_CONNTRACK_CLOSE, regardless of
whether the RST corresponds to the expected reply direction. The relevant
code path assumes the RST is a response to an outgoing SYN, but does not
validate packet direction or ensure that a matching SYN was actually sent
in the opposite direction.

As a result, a crafted packet sequence consisting of a SYN followed by an
invalid-sequence RST can prematurely terminate an active NAT entry. This
makes connection teardown easier than intended.

So, tighten the state transition logic to ensure that RST-triggered
CLOSE transitions only occur when the RST is a valid response to a
previously observed SYN in the correct direction.

Cc: stable@vger.kernel.org
Fixes: 9fb9cbb1082d ("[NETFILTER]: Add nf_conntrack subsystem.")
Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
net/netfilter/nf_conntrack_proto_tcp.c