mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
netfilter: nf_tables: validate chain type update if available
[ Upstream commit aaba7ddc8507f4ad5bbd07988573967632bc2385 ]
Parse netlink attribute containing the chain type in this update, to
bail out if this is different from the existing type.
Otherwise, it is possible to define a chain with the same name, hook and
priority but different type, which is silently ignored.
Fixes: 96518518cc ("netfilter: add nftables")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f5ab4e73c9
commit
f1ee0ffbc0
@@ -2263,7 +2263,16 @@ static int nft_chain_parse_hook(struct net *net,
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
type = basechain->type;
|
||||
if (nla[NFTA_CHAIN_TYPE]) {
|
||||
type = __nf_tables_chain_type_lookup(nla[NFTA_CHAIN_TYPE],
|
||||
family);
|
||||
if (!type) {
|
||||
NL_SET_BAD_ATTR(extack, nla[NFTA_CHAIN_TYPE]);
|
||||
return -ENOENT;
|
||||
}
|
||||
} else {
|
||||
type = basechain->type;
|
||||
}
|
||||
}
|
||||
|
||||
if (!try_module_get(type->owner)) {
|
||||
|
||||
Reference in New Issue
Block a user