]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
netfilter: nft_payload: rebuild vlan header on h_proto access
authorFlorian Westphal <fw@strlen.de>
Fri, 29 Sep 2023 08:42:10 +0000 (10:42 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jun 2024 11:39:50 +0000 (13:39 +0200)
commit83129237392128be45575e71de7aa3c4f951d30e
treeaacecb93fa2b3b6d061a4df499171a64394986cd
parentae4053a6d4e38665604fbddd77488a710576fedf
netfilter: nft_payload: rebuild vlan header on h_proto access

[ Upstream commit af84f9e447a65b4b9f79e7e5d69e19039b431c56 ]

nft can perform merging of adjacent payload requests.
This means that:

ether saddr 00:11 ... ether type 8021ad ...

is a single payload expression, for 8 bytes, starting at the
ethernet source offset.

Check that offset+length is fully within the source/destination mac
addersses.

This bug prevents 'ether type' from matching the correct h_proto in case
vlan tag got stripped.

Fixes: de6843be3082 ("netfilter: nft_payload: rebuild vlan header when needed")
Reported-by: David Ward <david.ward@ll.mit.edu>
Signed-off-by: Florian Westphal <fw@strlen.de>
Stable-dep-of: 33c563ebf8d3 ("netfilter: nft_payload: skbuff vlan metadata mangle support")
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/netfilter/nft_payload.c