netfilter: nf_tables: validate maximum value of u32 netlink hash attribute
Subsystems (2)
PATCH 1/1 netfilter: nf_tables: validate maximum value of u32 netlink hash attribute
Use the function nft_parse_u32_check() to fetch the value and validate the u32 attribute into the hash len u8 field.
This patch revisits 4da449ae1df9 ("netfilter: nft_exthdr: Add size check on u8 nft_exthdr attributes").
--- net/netfilter/nft_hash.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
net/netfilter/nft_hash.c +5 -2
@@ -53,6 +53,7 @@ static int nft_hash_init(const struct nft_ctx *ctx, {struct nft_hash *priv =nft_expr_priv (expr);u32 len; +int err; if (!tb[NFTA_HASH_SREG] || !tb[NFTA_HASH_DREG] ||
@@ -66,8 +67,10 @@ static int nft_hash_init(const struct nft_ctx *ctx, priv->sreg =nft_parse_register (tb[NFTA_HASH_SREG ]); priv->dreg =nft_parse_register (tb[NFTA_HASH_DREG ]); - len =ntohl (nla_get_be32 (tb[NFTA_HASH_LEN ])); -if (len ==0 || len >U8_MAX ) + err =nft_parse_u32_check (tb[NFTA_HASH_LEN ],U8_MAX , &len); +if (err <0 ) +return err; +if (len ==0 )return -ERANGE ; priv->len = len;
Signature · 1 line
2.10.2
Quoted 5 lines · Laura Garcia Liebana
Use the function
nft_parse_u32_check()to fetch the value and validate the u32 attribute into the hash len u8 field.This patch revisits
4da449ae1df9("netfilter:nft_exthdr: Add size check on u8nft_exthdrattributes").
Applied, thanks.
Please, always target your fixes to nf.
New features go to nf-next.
Regarding patch title, in second place we usually specify to what component this is targeted to, so I would suggest:
netfilter: nft_hash: validate maximum value of u32 netlink hash attribute
so git log --oneline quickly tells us this is targetd to nft_hash.
I have also added this tag which is useful for -stable maintainers:
Thanks Laura!