Re: [PATCH] kbuild: ubsan: skip UBSAN for external modules by default
Nathan Chancellor <[email protected]>
| Newsgroups | org.kernel.vger.linux-kbuild,org.kernel.vger.linux-hardening,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260821190701.GA3030879@ax162> |
+ Kees and linux-hardening@ for visibility On Thu, Aug 20, 2026 at 09:01:58PM +0200, Ferran Duarri wrote: > External modules built with KBUILD_EXTMOD set inherit UBSAN sanitizer > flags from the kernel's KBUILD_CFLAGS because is-kernel-object is 'y' > for any obj-m object. This silently breaks third-party modules whose > source code (e.g. VMware vmnet/vmmon) triggers UBSAN UB checks at > runtime, causing packet-forwarding failures and VM instability while > the module itself loads successfully. > > Make UBSAN opt-in for external modules: skip the is-kernel-object 'y' > fallback when KBUILD_EXTMOD is set. External modules that explicitly > need UBSAN can still opt in by setting UBSAN_SANITIZE := y. > > In-kernel module builds are not affected. > Signed-off-by: Ferran Duarri <[email protected]> I am open to other opinions but I am not inclined to apply this change. If an external module has issues with these checks, it should either be fixed or 'UBSAN_SANITIZE := n' can be added to the module's Makefile, rather than making the default worse for everyone else, especially given the importance of UBSAN_BOUNDS for avoiding out of bounds accesses and writes. -- Cheers, Nathan