netfilter: bridge: release template ct on non-IP path
authorZhiling Zou <zhilinz@nebusec.ai>
Fri, 31 Jul 2026 06:36:53 +0000 (14:36 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 10 Aug 2026 18:14:01 +0000 (20:14 +0200)
commitd45cc8020d7c0a9f01dee42ff5c40bc14c9af72f
treee73793cadcc4fd922e120a0c4da6370a58370747
parent0c88868271653537ed443272dd8e7d13634d214b
netfilter: bridge: release template ct on non-IP path

A bridge nftables ct zone set rule can attach a conntrack template to
an skb before nf_ct_bridge_pre() sees it. For non-IPv4 and non-IPv6
EtherTypes, nf_ct_bridge_pre() currently overwrites skb->_nfct with
IP_CT_UNTRACKED without releasing the existing template reference.

That makes the per-cpu template, and any temporary templates allocated
for concurrent use, unreachable and leaks memory until the host runs out
of slab.

Reset the skb conntrack state before marking the frame untracked so the
existing template reference is dropped on the non-IP path.

Fixes: 3c171f496ef5 ("netfilter: bridge: add connection tracking system")
Cc: stable@vger.kernel.org
Reported-by: Vega <vega@nebusec.ai>
Signed-off-by: Zhiling Zou <zhilinz@nebusec.ai>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/bridge/netfilter/nf_conntrack_bridge.c