APPLIED: [SRU Focal 1/1] netfilter: nf_tables: stricter validation of element data

Stefan Bader stefan.bader at canonical.com
Mon Aug 1 13:20:18 UTC 2022


On 14.07.22 23:28, Thadeu Lima de Souza Cascardo wrote:
> From: Pablo Neira Ayuso <pablo at netfilter.org>
> 
> Make sure element data type and length do not mismatch the one specified
> by the set declaration.
> 
> Fixes: 7d7402642eaf ("netfilter: nf_tables: variable sized set element keys / data")
> Reported-by: Hugues ANGUELKOV <hanguelkov at randorisec.fr>
> Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
> CVE-2022-34918
> (backported from commit 7e6bc1f6cabcd30aba0b11219d8e01b952eacbb6)
> [cengizcan: target function does not exist until 5.8 so follow history
> backwards, find previous place of length check and adapt the change for
> 5.4]
> Signed-off-by: Cengiz Can <cengiz.can at canonical.com>
> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
> ---

Applied to focal:linux/master-next. Thanks.

-Stefan

>   net/netfilter/nf_tables_api.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
> index 24f18d6a0a50..54efb96705e5 100644
> --- a/net/netfilter/nf_tables_api.c
> +++ b/net/netfilter/nf_tables_api.c
> @@ -4531,6 +4531,7 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
>   	struct nft_data data;
>   	enum nft_registers dreg;
>   	struct nft_trans *trans;
> +	u32 dtype;
>   	u32 flags = 0;
>   	u64 timeout;
>   	u64 expiration;
> @@ -4630,7 +4631,13 @@ static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set,
>   			goto err2;
>   
>   		err = -EINVAL;
> -		if (set->dtype != NFT_DATA_VERDICT && d2.len != set->dlen)
> +
> +		if (set->dtype == NFT_DATA_VERDICT)
> +			dtype = NFT_DATA_VERDICT;
> +		else
> +			dtype = NFT_DATA_VALUE;
> +
> +		if (dtype != d2.type || set->dlen != d2.len)
>   			goto err3;
>   
>   		dreg = nft_type_to_reg(set->dtype);

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20220801/994d6395/attachment.sig>


More information about the kernel-team mailing list