Check the nokaslr cmdline parameter
[kconfig-hardened-check.git] / kconfig_hardened_check / __init__.py
index 8922fdbe5f2d23e0d3199792fe6285ff71fa8790..8ecdbf1a5fcbd08ce7f7477094d4cdb153528077 100644 (file)
@@ -29,7 +29,6 @@
 #           ssbd=force-on
 #
 #    Should NOT be set:
-#           nokaslr
 #           sysrq_always_enabled
 #           arm64.nobti
 #           arm64.nopauth
@@ -462,12 +461,15 @@ def add_kconfig_checks(l, arch):
     l += [KconfigCheck('self_protection', 'clipos', 'RANDOM_TRUST_BOOTLOADER', 'is not set')]
     l += [KconfigCheck('self_protection', 'clipos', 'RANDOM_TRUST_CPU', 'is not set')]
     l += [AND(KconfigCheck('self_protection', 'clipos', 'GCC_PLUGIN_RANDSTRUCT_PERFORMANCE', 'is not set'),
-              randstruct_is_set)]
+              randstruct_is_set,
+              cc_is_gcc)]
     if arch in ('X86_64', 'ARM64', 'X86_32'):
         l += [AND(KconfigCheck('self_protection', 'clipos', 'STACKLEAK_METRICS', 'is not set'),
-                  stackleak_is_set)]
+                  stackleak_is_set,
+                  cc_is_gcc)]
         l += [AND(KconfigCheck('self_protection', 'clipos', 'STACKLEAK_RUNTIME_DISABLE', 'is not set'),
-                  stackleak_is_set)]
+                  stackleak_is_set,
+                  cc_is_gcc)]
     if arch in ('X86_64', 'X86_32'):
         l += [AND(KconfigCheck('self_protection', 'clipos', 'INTEL_IOMMU_DEFAULT_ON', 'y'),
                   iommu_support_is_set)]
@@ -698,6 +700,7 @@ def add_cmdline_checks(l, arch):
              AND(KconfigCheck('self_protection', 'kspp', 'IOMMU_DEFAULT_PASSTHROUGH', 'is not set'),
                  CmdlineCheck('self_protection', 'kspp', 'iommu.passthrough', 'is not set')))]
     # The cmdline checks compatible with the kconfig recommendations of the KSPP project...
+    l += [CmdlineCheck('self_protection', 'kspp', 'nokaslr', 'is not set')]
     l += [OR(CmdlineCheck('self_protection', 'kspp', 'hardened_usercopy', '1'),
              AND(KconfigCheck('self_protection', 'kspp', 'HARDENED_USERCOPY', 'y'),
                  CmdlineCheck('self_protection', 'kspp', 'hardened_usercopy', 'is not set')))]