]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: security: Allow default HARDENED_USERCOPY to be set at compile time
authorMel Gorman <mgorman@techsingularity.net>
Thu, 23 Jan 2025 22:11:13 +0000 (22:11 +0000)
committerKees Cook <kees@kernel.org>
Fri, 28 Feb 2025 19:51:31 +0000 (11:51 -0800)
HARDENED_USERCOPY defaults to on if enabled at compile time. Allow
hardened_usercopy= default to be set at compile time similar to
init_on_alloc= and init_on_free=. The intent is that hardening
options that can be disabled at runtime can set their default at
build time.

Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Link: https://lore.kernel.org/r/20250123221115.19722-3-mgorman@techsingularity.net
Signed-off-by: Kees Cook <kees@kernel.org>
Documentation/admin-guide/kernel-parameters.txt
mm/usercopy.c
security/Kconfig.hardening

index fb8752b42ec8582b8750d7e014c4d76166fa2fc1..41d4cf206ec1bf0ee2d776d088775364a3bd5c0a 100644 (file)
                        allocation boundaries as a proactive defense
                        against bounds-checking flaws in the kernel's
                        copy_to_user()/copy_from_user() interface.
-               on      Perform hardened usercopy checks (default).
+                       The default is determined by
+                       CONFIG_HARDENED_USERCOPY_DEFAULT_ON.
+               on      Perform hardened usercopy checks.
                off     Disable hardened usercopy checks.
 
        hardlockup_all_cpu_backtrace=
index 16d63bd010aff85a6d4d34b16d7f87a901d283da..e65a612ce8e8742c83dd07fb76cd6f61b40afd57 100644 (file)
@@ -255,7 +255,8 @@ void __check_object_size(const void *ptr, unsigned long n, bool to_user)
 }
 EXPORT_SYMBOL(__check_object_size);
 
-static bool enable_checks __initdata = true;
+static bool enable_checks __initdata =
+               IS_ENABLED(CONFIG_HARDENED_USERCOPY_DEFAULT_ON);
 
 static int __init parse_hardened_usercopy(char *str)
 {
index 9f1bea733523ed62a1443ef90343f9c7adf9581a..45748379f89635506be026d6a27e5ce991a0450c 100644 (file)
@@ -294,6 +294,14 @@ config HARDENED_USERCOPY
          or are part of the kernel text. This prevents entire classes
          of heap overflow exploits and similar kernel memory exposures.
 
+config HARDENED_USERCOPY_DEFAULT_ON
+       bool "Harden memory copies by default"
+       depends on HARDENED_USERCOPY
+       default HARDENED_USERCOPY
+       help
+         This has the effect of setting "hardened_usercopy=on" on the kernel
+         command line. This can be disabled with "hardened_usercopy=off".
+
 endmenu
 
 menu "Hardening of kernel data structures"