lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <202208312324.F2F8B28CA@keescook> Date: Wed, 31 Aug 2022 23:27:08 -0700 From: Kees Cook <keescook@...omium.org> To: Jakub Kicinski <kuba@...nel.org> Cc: "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Paolo Abeni <pabeni@...hat.com>, Pablo Neira Ayuso <pablo@...filter.org>, Jozsef Kadlecsik <kadlec@...filter.org>, Florian Westphal <fw@...len.de>, syzbot <syzkaller@...glegroups.com>, Yajun Deng <yajun.deng@...ux.dev>, netdev@...r.kernel.org, netfilter-devel@...r.kernel.org, coreteam@...filter.org, Oliver Hartkopp <socketcan@...tkopp.net>, Harshit Mogalapalli <harshit.m.mogalapalli@...cle.com>, linux-kernel@...r.kernel.org, linux-hardening@...r.kernel.org Subject: Re: [PATCH 1/2] netlink: Bounds-check nlmsg_len() On Wed, Aug 31, 2022 at 08:18:25PM -0700, Jakub Kicinski wrote: > On Wed, 31 Aug 2022 20:06:09 -0700 Kees Cook wrote: > > static inline int nlmsg_len(const struct nlmsghdr *nlh) > > { > > - return nlh->nlmsg_len - NLMSG_HDRLEN; > > + u32 nlmsg_contents_len; > > + > > + if (WARN_ON_ONCE(check_sub_overflow(nlh->nlmsg_len, > > + (u32)NLMSG_HDRLEN, > > + &nlmsg_contents_len))) > > + return 0; > > + if (WARN_ON_ONCE(nlmsg_contents_len > INT_MAX)) > > + return INT_MAX; > > + return nlmsg_contents_len; > > We check the messages on input, making sure the length is valid wrt > skb->len, and sane, ie > NLMSG_HDRLEN. See netlink_rcv_skb(). > > Can we not, pretty please? :( This would catch corrupted values... Is the concern the growth in image size? The check_sub_overflow() isn't large at all -- it's just adding a single overflow bit test. The WARNs are heavier, but they're all out-of-line. -- Kees Cook
Powered by blists - more mailing lists