Thread (8 messages) 8 messages, 3 authors, 2022-08-29

Re: [PATCH nf] netfilter: ebtables: reject blobs that don't provide all entry points

From: Florian Westphal <fw@strlen.de>
Date: 2022-08-29 14:03:34
Also in: bridge, lkml, netfilter-devel

john.p.donnelly@oracle.com [off-list ref] wrote:
On 8/20/22 12:35 PM, Florian Westphal wrote:
quoted
For some reason ebtables reject blobs that provide entry points that are
not supported by the table.

What it should instead reject is the opposite, i.e. rulesets that
DO NOT provide an entry point that is supported by the table.

t->valid_hooks is the bitmask of hooks (input, forward ...) that will
see packets.  So, providing an entry point that is not support is
harmless (never called/used), but the reverse is NOT, this will cause
crash because the ebtables traverser doesn't expect a NULL blob for
a location its receiving packets for.

Instead of fixing all the individual checks, do what iptables is doing and
reject all blobs that doesn't provide the expected hooks.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: Harshit Mogalapalli <redacted>
Signed-off-by: Florian Westphal <fw@strlen.de>
Hi,

 Could you please add the panic stack mentioned above  and syzkaller
reproducer ID to the commit text ?
I did not see a reproducer ID.  What ended up in the tree is this:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7997eff82828304b780dc0a39707e1946d6f1ebf
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help