From: Simon THOBY <git@nightmared.fr>
To: linux-security-module@vger.kernel.org
Cc: Simon THOBY <git@nightmared.fr>,
linux-integrity@vger.kernel.org, linux-doc@vger.kernel.org
Subject: [RFC PATCH 8/9] Loadpol LSM: include the blacklisted kernel modules in the policy
Date: Wed, 21 May 2025 16:01:12 +0200 [thread overview]
Message-ID: <20250521140121.591482-9-git@nightmared.fr> (raw)
In-Reply-To: <20250521140121.591482-1-git@nightmared.fr>
When kernel modules are blacklisted, list them explicitly in the loadpol
policy.
Signed-off-by: Simon THOBY <git@nightmared.fr>
---
security/loadpol/loadpol.c | 35 ++++++++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/security/loadpol/loadpol.c b/security/loadpol/loadpol.c
index 4d1a495a1462..c3c1846a3398 100644
--- a/security/loadpol/loadpol.c
+++ b/security/loadpol/loadpol.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-only
#include "linux/array_size.h"
+#include <linux/module.h>
#include <linux/lsm_hooks.h>
#include <uapi/linux/lsm.h>
@@ -33,12 +34,36 @@ DEFINE_LSM(LOADPOL_NAME) = {
static int __init loadpol_init(void)
{
+ struct loadpol_policy_entry *entry;
+ char *module_name;
+
+ const char *module_blacklist = get_blacklisted_modules();
+
+ if (module_blacklist) {
+ size_t len;
+
+ for (const char *p = module_blacklist; *p; p += len) {
+ len = strcspn(p, ",");
+
+ module_name = kstrndup(p, len, GFP_KERNEL);
+ entry = kzalloc(sizeof(*entry), GFP_KERNEL);
+ if (!module_name || !entry)
+ return -ENOMEM;
+
+ entry->origin = (ORIGIN_USERSPACE | ORIGIN_KERNEL);
+ entry->action = ACTION_DENY;
+ entry->module_name = module_name;
+ list_add_tail(&entry->list, loadpol_policy);
+
+ if (p[len] == ',')
+ len++;
+ }
+ }
+
for (int i = 0; i < ARRAY_SIZE(default_policy_entries); i++) {
- struct loadpol_policy_entry *entry = kmemdup(
- &default_policy_entries[i],
- sizeof(struct loadpol_policy_entry),
- GFP_KERNEL
- );
+ entry = kmemdup(&default_policy_entries[i],
+ sizeof(struct loadpol_policy_entry),
+ GFP_KERNEL);
if (!entry)
return -ENOMEM;
--
2.49.0
next prev parent reply other threads:[~2025-05-21 14:01 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-21 14:01 [RFC PATCH 0/9] Introducing the Loadpol LSM Simon THOBY
2025-05-21 14:01 ` [RFC PATCH 1/9] LSM: Introduce a new hook: security_kernel_module_load Simon THOBY
2025-05-21 22:03 ` Serge E. Hallyn
2025-05-22 8:57 ` Simon Thoby
2025-05-21 14:01 ` [RFC PATCH 2/9] Introduce a new LSM: loadpol Simon THOBY
2025-05-21 14:01 ` [RFC PATCH 3/9] Loadpol LSM: filter kernel module request according to the policy Simon THOBY
2025-05-21 15:47 ` Casey Schaufler
2025-05-21 16:21 ` Randy Dunlap
2025-05-21 16:26 ` Simon Thoby
2025-05-21 14:01 ` [RFC PATCH 4/9] Loadpol LSM: add a file in securityfs to read/modify " Simon THOBY
2025-05-21 14:01 ` [RFC PATCH 5/9] Loadpol LSM: add a sysctl to lock " Simon THOBY
2025-05-21 14:01 ` [RFC PATCH 6/9] Loadpol LSM: emit an audit log Simon THOBY
2025-05-21 14:01 ` [RFC PATCH 7/9] module: expose the list of blacklisted modules Simon THOBY
2025-05-21 14:01 ` Simon THOBY [this message]
2025-05-21 14:01 ` [RFC PATCH 9/9] Loadpol LSM: add a minimal documentation Simon THOBY
2025-05-21 16:26 ` Randy Dunlap
2025-05-21 16:29 ` Simon Thoby
2025-05-21 21:31 ` Paul Moore
2025-05-22 9:23 ` Simon Thoby
2025-05-29 23:49 ` Paul Moore
2025-05-30 7:03 ` Simon Thoby
2025-05-30 14:59 ` Paul Moore
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=20250521140121.591482-9-git@nightmared.fr \
--to=git@nightmared.fr \
--cc=linux-doc@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
/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.