Leonardo Bras
2019-Aug-31 04:40 UTC
[Bridge] [PATCH v5 1/1] net: br_netfiler_hooks: Drops IPv6 packets if IPv6 module is not loaded
A kernel panic can happen if a host has disabled IPv6 on boot and have to process guest packets (coming from a bridge) using it's ip6tables. IPv6 packets need to be dropped if the IPv6 module is not loaded, and the host ip6tables will be used. Signed-off-by: Leonardo Bras <leonardo at linux.ibm.com> --- Changes from v4: - Check if the host ip6tables is going to be used before testing ipv6 module presence - Adds a warning about ipv6 module disabled. net/bridge/br_netfilter_hooks.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c index d3f9592f4ff8..af7800103e51 100644 --- a/net/bridge/br_netfilter_hooks.c +++ b/net/bridge/br_netfilter_hooks.c @@ -496,6 +496,10 @@ static unsigned int br_nf_pre_routing(void *priv, if (!brnet->call_ip6tables && !br_opt_get(br, BROPT_NF_CALL_IP6TABLES)) return NF_ACCEPT; + if (!ipv6_mod_enabled()) { + pr_warn_once("Module ipv6 is disabled, so call_ip6tables is not supported."); + return NF_DROP; + } nf_bridge_pull_encap_header_rcsum(skb); return br_nf_pre_routing_ipv6(priv, skb, state); -- 2.20.1
Florian Westphal
2019-Aug-31 08:38 UTC
[Bridge] [PATCH v5 1/1] net: br_netfiler_hooks: Drops IPv6 packets if IPv6 module is not loaded
Leonardo Bras <leonardo at linux.ibm.com> wrote:> A kernel panic can happen if a host has disabled IPv6 on boot and have to > process guest packets (coming from a bridge) using it's ip6tables. > > IPv6 packets need to be dropped if the IPv6 module is not loaded, and the > host ip6tables will be used. > > Signed-off-by: Leonardo Bras <leonardo at linux.ibm.com> > --- > Changes from v4: > - Check if the host ip6tables is going to be used before testing > ipv6 module presence > - Adds a warning about ipv6 module disabled. > > > net/bridge/br_netfilter_hooks.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c > index d3f9592f4ff8..af7800103e51 100644 > --- a/net/bridge/br_netfilter_hooks.c > +++ b/net/bridge/br_netfilter_hooks.c > @@ -496,6 +496,10 @@ static unsigned int br_nf_pre_routing(void *priv, > if (!brnet->call_ip6tables && > !br_opt_get(br, BROPT_NF_CALL_IP6TABLES)) > return NF_ACCEPT; > + if (!ipv6_mod_enabled()) { > + pr_warn_once("Module ipv6 is disabled, so call_ip6tables is not supported."); > + return NF_DROP; > + }pr_warn_once needs a '\n'. Pablo, can you mangle this locally when applying? Patch looks good to me, so: Acked-by: Florian Westphal <fw at strlen.de>
Pablo Neira Ayuso
2019-Sep-02 21:20 UTC
[Bridge] [PATCH v5 1/1] net: br_netfiler_hooks: Drops IPv6 packets if IPv6 module is not loaded
On Sat, Aug 31, 2019 at 01:40:33AM -0300, Leonardo Bras wrote:> A kernel panic can happen if a host has disabled IPv6 on boot and have to > process guest packets (coming from a bridge) using it's ip6tables. > > IPv6 packets need to be dropped if the IPv6 module is not loaded, and the > host ip6tables will be used.Applied, thanks.