From: Pablo Neira Ayuso <pablo@netfilter.org>
To: netfilter-devel@vger.kernel.org
Cc: davem@davemloft.net, netdev@vger.kernel.org, kuba@kernel.org,
pabeni@redhat.com, edumazet@google.com, fw@strlen.de,
horms@kernel.org
Subject: [PATCH net,v2 0/8] Netfilter fixes for net
Date: Tue, 28 Apr 2026 11:58:31 +0200 [thread overview]
Message-ID: <20260428095840.51961-1-pablo@netfilter.org> (raw)
Reposting this PR without IPVS fixes:
https://patchwork.kernel.org/project/netdevbpf/patch/20260424190513.32823-1-pablo@netfilter.org/
until the remaining issues are addressed.
-o-
Hi,
The following patchset contains Netfilter fixes for net:
1) IEEE1394 ARP payload contains no target hardware address in the
ARP packet. Apparently, arp_tables was never updated to deal with
IEEE1394 ARP properly. To deal with this, return no match in case
the target hardware address selector is used, either for inverse or
normal match. Moreover, arpt_mangle disallows mangling of the target
hardware and IP address because, it is not worth to adjust the
offset calculation to fix this, we suspect no users of arp_tables
for this family.
2) Use list_del_rcu() to delete device hooks in nf_tables, this hook
list is RCU protected, concurrent netlink dump readers can be
walking on this list, fix it by adding a helper function and use it
for consistency. From Florian Westphal.
3) Add list_splice_rcu(), this is useful for joining the local list of
new device hooks to the RCU protected hook list in chain and
flowtable. Reviewed by Paul E. McKenney.
4) Use list_splice_rcu() to publish the new device hooks in chain and
flowtable to fix concurrent netlink dump traversal.
5) Add a new hook transaction object to track device hook deletions.
The current approach moves device hooks to be deleted around during
the preparation phase, this breaks concurrent RCU reader via netlink
dump. This new hook transaction is combined with NFT_HOOK_REMOVE
flag to annotate hooks for removal in the preparation phase.
6) xt_policy inbound policy check in strict mode can lead to
out-of-bound access of the secpath array due to incorrect.
The iteration over the secpath needs to be reversed in the inbound
to check for the human readable policy, expecting inner in first
position and outer in second position, the secpath from inbound
actually stores outer in first position then in second position.
From Jiexun Wang.
7) Fix possible zero shift in nft_bitwise triggering UBSAN splat,
reject zero shift from control plane, from Kai Ma.
8) Replace simple_strtoul() in the conntrack SIP helper since it relies
on nul-terminated strings. From Florian Westphal.
Please, pull these changes from:
git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git nf-26-04-28
Thanks.
----------------------------------------------------------------
The following changes since commit 711987ba281fd806322a7cd244e98e2a81903114:
netfilter: nfnetlink_osf: fix potential NULL dereference in ttl check (2026-04-20 23:45:44 +0200)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git tags/nf-26-04-28
for you to fetch changes up to 8cf6809cddcbe301aedfc6b51bcd4944d45795f6:
netfilter: nf_conntrack_sip: don't use simple_strtoul (2026-04-24 20:09:57 +0200)
----------------------------------------------------------------
netfilter pull request 26-04-28
----------------------------------------------------------------
Florian Westphal (2):
netfilter: nf_tables: use list_del_rcu for netlink hooks
netfilter: nf_conntrack_sip: don't use simple_strtoul
Jiexun Wang (1):
netfilter: xt_policy: fix strict mode inbound policy matching
Kai Ma (1):
netfilter: reject zero shift in nft_bitwise
Pablo Neira Ayuso (4):
netfilter: arp_tables: fix IEEE1394 ARP payload parsing
rculist: add list_splice_rcu() for private lists
netfilter: nf_tables: join hook list via splice_list_rcu() in commit phase
netfilter: nf_tables: add hook transactions for device deletions
include/linux/rculist.h | 29 ++++
include/net/netfilter/nf_tables.h | 13 ++
net/ipv4/netfilter/arp_tables.c | 18 ++-
net/ipv4/netfilter/arpt_mangle.c | 8 +
net/netfilter/nf_conntrack_sip.c | 152 +++++++++++++-----
net/netfilter/nf_nat_sip.c | 1 +
net/netfilter/nf_tables_api.c | 314 +++++++++++++++++++++++++++-----------
net/netfilter/nft_bitwise.c | 3 +-
net/netfilter/xt_policy.c | 2 +-
9 files changed, 412 insertions(+), 128 deletions(-)
next reply other threads:[~2026-04-28 9:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-28 9:58 Pablo Neira Ayuso [this message]
2026-04-28 9:58 ` [PATCH net 1/8] netfilter: arp_tables: fix IEEE1394 ARP payload parsing Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 2/8] netfilter: nf_tables: use list_del_rcu for netlink hooks Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 3/8] rculist: add list_splice_rcu() for private lists Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 4/8] netfilter: nf_tables: join hook list via splice_list_rcu() in commit phase Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 5/8] netfilter: nf_tables: add hook transactions for device deletions Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 6/8] netfilter: xt_policy: fix strict mode inbound policy matching Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 7/8] netfilter: reject zero shift in nft_bitwise Pablo Neira Ayuso
2026-04-28 9:58 ` [PATCH net 8/8] netfilter: nf_conntrack_sip: don't use simple_strtoul Pablo Neira Ayuso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260428095840.51961-1-pablo@netfilter.org \
--to=pablo@netfilter.org \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fw@strlen.de \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pabeni@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox