[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z+8Ha5m911k4H7ew@pop-os.localdomain>
Date: Thu, 3 Apr 2025 15:10:51 -0700
From: Cong Wang <xiyou.wangcong@...il.com>
To: Lin Ma <linma@....edu.cn>
Cc: davem@...emloft.net, dsahern@...nel.org, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, horms@...nel.org,
pablo@...filter.org, kadlec@...filter.org, jhs@...atatu.com,
jiri@...nulli.us, lucien.xin@...il.com,
pieter.jansenvanvuuren@...ronome.com, netdev@...r.kernel.org
Subject: Re: [PATCH net] net: fix geneve_opt length integer overflow
On Thu, Apr 03, 2025 at 12:56:32AM +0800, Lin Ma wrote:
> struct geneve_opt uses 5 bit length for each single option, which
> means every vary size option should be smaller than 128 bytes.
>
> However, all current related Netlink policies cannot promise this
> length condition and the attacker can exploit a exact 128-byte size
> option to *fake* a zero length option and confuse the parsing logic,
> further achieve heap out-of-bounds read.
>
...
> Fix these issues by enforing correct length condition in related
> policies.
>
> Fixes: 925d844696d9 ("netfilter: nft_tunnel: add support for geneve opts")
> Fixes: 4ece47787077 ("lwtunnel: add options setting and dumping for geneve")
> Fixes: 0ed5269f9e41 ("net/sched: add tunnel option support to act_tunnel_key")
> Fixes: 0a6e77784f49 ("net/sched: allow flower to match tunnel options")
> Signed-off-by: Lin Ma <linma@....edu.cn>
Maybe it is time to define a max option length in include/net/geneve.h,
but this is not a big deal. So:
Acked-by: Cong Wang <xiyou.wangcong@...il.com>
Thanks!
Powered by blists - more mailing lists