integrity: invalid kernel parameters feedback
authorBruno Meneguele <bmeneg@redhat.com>
Fri, 4 Sep 2020 19:40:58 +0000 (16:40 -0300)
committerMimi Zohar <zohar@linux.ibm.com>
Wed, 9 Sep 2020 02:03:50 +0000 (22:03 -0400)
Don't silently ignore unknown or invalid ima_{policy,appraise,hash} and evm
kernel boot command line options.

Signed-off-by: Bruno Meneguele <bmeneg@redhat.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
security/integrity/evm/evm_main.c
security/integrity/ima/ima_appraise.c
security/integrity/ima/ima_main.c
security/integrity/ima/ima_policy.c

index 0d36259..6ae00fe 100644 (file)
@@ -59,6 +59,9 @@ static int __init evm_set_fixmode(char *str)
 {
        if (strncmp(str, "fix", 3) == 0)
                evm_fixmode = 1;
+       else
+               pr_err("invalid \"%s\" mode", str);
+
        return 0;
 }
 __setup("evm=", evm_set_fixmode);
index 580b771..2193b51 100644 (file)
@@ -33,6 +33,8 @@ static int __init default_appraise_setup(char *str)
                ima_appraise = IMA_APPRAISE_FIX;
        else if (strncmp(str, "enforce", 7) == 0)
                ima_appraise = IMA_APPRAISE_ENFORCE;
+       else
+               pr_err("invalid \"%s\" appraise option", str);
 #endif
        return 1;
 }
index 8a91711..2b22932 100644 (file)
@@ -50,18 +50,23 @@ static int __init hash_setup(char *str)
                return 1;
 
        if (strcmp(template_desc->name, IMA_TEMPLATE_IMA_NAME) == 0) {
-               if (strncmp(str, "sha1", 4) == 0)
+               if (strncmp(str, "sha1", 4) == 0) {
                        ima_hash_algo = HASH_ALGO_SHA1;
-               else if (strncmp(str, "md5", 3) == 0)
+               } else if (strncmp(str, "md5", 3) == 0) {
                        ima_hash_algo = HASH_ALGO_MD5;
-               else
+               } else {
+                       pr_err("invalid hash algorithm \"%s\" for template \"%s\"",
+                               str, IMA_TEMPLATE_IMA_NAME);
                        return 1;
+               }
                goto out;
        }
 
        i = match_string(hash_algo_name, HASH_ALGO__LAST, str);
-       if (i < 0)
+       if (i < 0) {
+               pr_err("invalid hash algorithm \"%s\"", str);
                return 1;
+       }
 
        ima_hash_algo = i;
 out:
index fe1df37..3422178 100644 (file)
@@ -241,6 +241,8 @@ static int __init policy_setup(char *str)
                        ima_use_secure_boot = true;
                else if (strcmp(p, "fail_securely") == 0)
                        ima_fail_unverifiable_sigs = true;
+               else
+                       pr_err("policy \"%s\" not found", p);
        }
 
        return 1;