Re: expires larger than timeout causes error

Harshit Mogalapalli <[email protected]>
Newsgroups gmane.comp.security.firewalls.netfilter.general
Message-ID <[email protected]>
Hi,

On 29/12/24 15:30, lilydjwg wrote:
> I have an IPv4 set with timeout 2d, but update its elements to 4d when
> a rule matches. It was fine until kernel is updated to 6.12.6 or 6.12.7.
> E.g. the following snippet gives an error when importing:
> 
> table inet blocker {
>          set spam_ips {
>                  type ipv4_addr
>                  size 65535
>                  flags dynamic,timeout
>                  timeout 2d
>                  elements = { 1.2.3.4 expires 3d }
>          }
> }
> 
> a.nft:7:16-22: Error: Could not process rule: Numerical result out of range
>                  elements = { 1.2.3.4 expires 3d }
>                               ^^^^^^^
> 

Note: I looked through the commits and this looks like a relevant commit:


commit c0f38a8c60174368aed1d0f9965d733195f15033
Author: Pablo Neira Ayuso <[email protected]>
Date:   Tue Sep 3 01:06:58 2024 +0200

     netfilter: nf_tables: reject expiration higher than timeout

     Report ERANGE to userspace if user specifies an expiration larger than
     the timeout.

     Fixes: 8e1102d5a159 ("netfilter: nf_tables: support timeouts larger 
than 23 days")
     Signed-off-by: Pablo Neira Ayuso <[email protected]>

diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
index da75bc1de466..6c0c6f8a08a8 100644
--- a/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -6930,6 +6930,9 @@ static int nft_add_set_elem(struct nft_ctx *ctx, 
struct nft_set *set,
                                             &expiration);
                 if (err)
                         return err;
+
+               if (expiration > timeout)
+                       return -ERANGE;
         }

         if (nla[NFTA_SET_ELEM_EXPR]) {



Thanks,
Harshit

> kernel 6.10.6 worked just fine. nftables cli v1.1.1.
> 
> Despite I can't import the set, existing elements can still be updated
> to timeout more that 2d.
> 
> A new bug? Or a new limitation?
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.