From: Mimi Zohar <zohar@linux.ibm.com>
To: linux-integrity@vger.kernel.org
Cc: "Mimi Zohar" <zohar@linux.ibm.com>,
"Jarkko Sakkinen" <jarkko@kernel.org>,
"David Howells" <dhowells@redhat.com>,
"Roberto Sassu" <roberto.sassu@huawei.com>,
"Mickaël Salaün" <mic@digikod.net>,
keyrings@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 3/3] ima: remove the experimental IMA blacklist keyring
Date: Fri, 6 Nov 2026 12:31:49 -0500 [thread overview]
Message-ID: <20261106173149.707244-4-zohar@linux.ibm.com> (raw)
In-Reply-To: <20261106173149.707244-1-zohar@linux.ibm.com>
The experimental IMA blacklist keyring accepts any certificate signed by
a key on the builtin trusted keyring. Since every certificate issued by
such a key qualifies, root can add any of them, including legitimate
ones. Nothing differentiates the authority to sign from the authority
to revoke.
Remove CONFIG_IMA_BLACKLIST_KEYRING, the ".ima_blacklist" keyring in
ima_mok.c, get_ima_blacklist_keyring() and the related Kconfig help
text.
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
---
include/keys/system_keyring.h | 14 ---------
security/integrity/ima/Kconfig | 13 +--------
security/integrity/ima/Makefile | 1 -
security/integrity/ima/ima_mok.c | 49 --------------------------------
4 files changed, 1 insertion(+), 76 deletions(-)
delete mode 100644 security/integrity/ima/ima_mok.c
diff --git a/include/keys/system_keyring.h b/include/keys/system_keyring.h
index 2ac1dae2063a..61e5aba26e24 100644
--- a/include/keys/system_keyring.h
+++ b/include/keys/system_keyring.h
@@ -119,20 +119,6 @@ static inline int is_key_on_revocation_list(struct pkcs7_message *pkcs7)
}
#endif
-#ifdef CONFIG_IMA_BLACKLIST_KEYRING
-extern struct key *ima_blacklist_keyring;
-
-static inline struct key *get_ima_blacklist_keyring(void)
-{
- return ima_blacklist_keyring;
-}
-#else
-static inline struct key *get_ima_blacklist_keyring(void)
-{
- return NULL;
-}
-#endif /* CONFIG_IMA_BLACKLIST_KEYRING */
-
#if defined(CONFIG_INTEGRITY_PLATFORM_KEYRING) && \
defined(CONFIG_SYSTEM_TRUSTED_KEYRING)
extern void __init set_platform_trusted_keys(struct key *keyring);
diff --git a/security/integrity/ima/Kconfig b/security/integrity/ima/Kconfig
index 72654cf797cd..fc42ddd34385 100644
--- a/security/integrity/ima/Kconfig
+++ b/security/integrity/ima/Kconfig
@@ -255,7 +255,7 @@ config IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY
select INTEGRITY_TRUSTED_KEYRING
default n
help
- Keys may be added to the IMA or IMA blacklist keyrings, if the
+ Keys may be added to the IMA keyring, if the
key is validly signed by a CA cert in the system built-in,
machine (if configured), or secondary trusted keyrings. The
key must also have the digitalSignature usage set.
@@ -265,17 +265,6 @@ config IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY
provided they are validly signed by a key already resident in the
built-in, machine (if configured) or secondary trusted keyrings.
-config IMA_BLACKLIST_KEYRING
- bool "Create IMA machine owner blacklist keyrings (EXPERIMENTAL)"
- depends on SYSTEM_TRUSTED_KEYRING
- depends on INTEGRITY_TRUSTED_KEYRING
- default n
- help
- This option creates an IMA blacklist keyring, which contains all
- revoked IMA keys. It is consulted before any other keyring. If
- the search is successful the requested operation is rejected and
- an error is returned to the caller.
-
config IMA_LOAD_X509
bool "Load X509 certificate onto the '.ima' trusted keyring"
depends on INTEGRITY_TRUSTED_KEYRING
diff --git a/security/integrity/ima/Makefile b/security/integrity/ima/Makefile
index b376d38b4ee6..ad5840ba085e 100644
--- a/security/integrity/ima/Makefile
+++ b/security/integrity/ima/Makefile
@@ -11,7 +11,6 @@ ima-y := ima_fs.o ima_queue.o ima_init.o ima_main.o ima_crypto.o ima_api.o \
ima-$(CONFIG_IMA_APPRAISE) += ima_appraise.o
ima-$(CONFIG_IMA_APPRAISE_MODSIG) += ima_modsig.o
ima-$(CONFIG_HAVE_IMA_KEXEC) += ima_kexec.o
-ima-$(CONFIG_IMA_BLACKLIST_KEYRING) += ima_mok.o
ima-$(CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS) += ima_asymmetric_keys.o
ima-$(CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS) += ima_queue_keys.o
diff --git a/security/integrity/ima/ima_mok.c b/security/integrity/ima/ima_mok.c
deleted file mode 100644
index 14d93d573a6a..000000000000
--- a/security/integrity/ima/ima_mok.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (C) 2015 Juniper Networks, Inc.
- *
- * Author:
- * Petko Manolov <petko.manolov@konsulko.com>
- */
-
-#include <linux/export.h>
-#include <linux/kernel.h>
-#include <linux/sched.h>
-#include <linux/cred.h>
-#include <linux/err.h>
-#include <linux/init.h>
-#include <linux/slab.h>
-#include <keys/system_keyring.h>
-
-
-struct key *ima_blacklist_keyring;
-
-/*
- * Allocate the IMA blacklist keyring
- */
-static __init int ima_mok_init(void)
-{
- struct key_restriction *restriction;
-
- pr_notice("Allocating IMA blacklist keyring.\n");
-
- restriction = kzalloc_obj(struct key_restriction);
- if (!restriction)
- panic("Can't allocate IMA blacklist restriction.");
-
- restriction->check = restrict_link_by_builtin_trusted;
-
- ima_blacklist_keyring = keyring_alloc(".ima_blacklist",
- KUIDT_INIT(0), KGIDT_INIT(0), current_cred(),
- (KEY_POS_ALL & ~KEY_POS_SETATTR) |
- KEY_USR_VIEW | KEY_USR_READ |
- KEY_USR_WRITE | KEY_USR_SEARCH,
- KEY_ALLOC_NOT_IN_QUOTA |
- KEY_ALLOC_SET_KEEP,
- restriction, NULL);
-
- if (IS_ERR(ima_blacklist_keyring))
- panic("Can't allocate IMA blacklist keyring.");
- return 0;
-}
-device_initcall(ima_mok_init);
--
2.56.0
prev parent reply other threads:[~2026-11-06 17:32 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-06 17:31 [PATCH 0/3] ima: use the system blacklist in lieu of the IMA blacklist keyring Mimi Zohar
2026-11-06 17:31 ` [PATCH 1/3] certs: blacklist: define skid: entries and add is_key_blacklisted() Mimi Zohar
2026-11-06 17:40 ` sashiko-bot
2026-11-06 17:31 ` [PATCH 2/3] integrity: use is_key_blacklisted() in asymmetric_verify() Mimi Zohar
2026-11-06 17:31 ` Mimi Zohar [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261106173149.707244-4-zohar@linux.ibm.com \
--to=zohar@linux.ibm.com \
--cc=dhowells@redhat.com \
--cc=jarkko@kernel.org \
--cc=keyrings@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mic@digikod.net \
--cc=roberto.sassu@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.