integrity: prevent loading untrusted certificates on the IMA trusted keyring
authorDmitry Kasatkin <dmitry.kasatkin@gmail.com>
Thu, 10 Sep 2015 19:06:15 +0000 (22:06 +0300)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Fri, 9 Oct 2015 19:31:18 +0000 (15:31 -0400)
If IMA_LOAD_X509 is enabled, either directly or indirectly via
IMA_APPRAISE_SIGNED_INIT, certificates are loaded onto the IMA
trusted keyring by the kernel via key_create_or_update(). When
the KEY_ALLOC_TRUSTED flag is provided, certificates are loaded
without first verifying the certificate is properly signed by a
trusted key on the system keyring.  This patch removes the
KEY_ALLOC_TRUSTED flag.

Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@huawei.com>
Cc: <stable@vger.kernel.org> # 3.19+
Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
security/integrity/digsig.c

index 36fb6b527829cead887c28828f9d3c83115568a7..5be9ffbe90bad1511d12b65345064dec22bac00a 100644 (file)
@@ -105,7 +105,7 @@ int __init integrity_load_x509(const unsigned int id, const char *path)
                                   rc,
                                   ((KEY_POS_ALL & ~KEY_POS_SETATTR) |
                                    KEY_USR_VIEW | KEY_USR_READ),
-                                  KEY_ALLOC_NOT_IN_QUOTA | KEY_ALLOC_TRUSTED);
+                                  KEY_ALLOC_NOT_IN_QUOTA);
        if (IS_ERR(key)) {
                rc = PTR_ERR(key);
                pr_err("Problem loading X.509 certificate (%d): %s\n",