All of lore.kernel.org
 help / color / mirror / Atom feed
From: Torsten Duwe <duwe@caldera.de>
To: Gregory Maxwell <greg@linuxpower.cx>
Cc: linux-kernel@vger.kernel.org
Subject: Modprobe local root exploit
Date: Mon, 13 Nov 2000 17:26:00 +0100 (CET)	[thread overview]
Message-ID: <14864.5656.706778.275865@ns.caldera.de> (raw)
In-Reply-To: <20001113093727.C1918@xi.linuxpower.cx>
In-Reply-To: <20001113093727.C1918@xi.linuxpower.cx>

>>>>> "Gregory" == Gregory Maxwell <greg@linuxpower.cx> writes:

    Gregory> After seeing the modprobe local root exploit today, I asked
    Gregory> myself why kmod executes modprobe with full root and doesn't
    Gregory> drop some capabilities first.

    Gregory> Why? It wouldn't close the hole, but it would narrow it down.

This might also be a good idea; but my suggestion is to not allow arbitrary
strings as module names in the first place. As far as I can see, all valid
strings for KMOD requests consist of alphanumeric chars plus dash and
underscore. Anybody with autoloaded modules that don't fit this pattern even
after /etc/modules.conf translation please object !

Here's the patch...

	Torsten

--- linux/kernel/kmod.c.orig	Tue Sep 26 01:18:55 2000
+++ linux/kernel/kmod.c	Mon Nov 13 16:57:02 2000
@@ -168,6 +168,22 @@
 	static atomic_t kmod_concurrent = ATOMIC_INIT(0);
 #define MAX_KMOD_CONCURRENT 50	/* Completely arbitrary value - KAO */
 	static int kmod_loop_msg;
+	const char * p;
+
+	/* For security reasons ensure the requested name consists
+	 * only of allowed characters. Especially whitespace and
+	 * shell metacharacters might confuse modprobe.
+	 */
+	for (p = module_name; *p; p++)
+	{
+	  if ((*p & 0xdf) >= 'a' && (*p & 0xdf) <= 'z')
+	    continue;
+	  if (*p >= '0' && *p <= '9')
+	    continue;
+	  if (*p == '_' || *p == '-')
+	    continue;
+	  return -EINVAL;
+	}
 
 	/* Don't allow request_module() before the root fs is mounted!  */
 	if ( ! current->fs->root ) {

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2000-11-13 16:26 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-11-13 14:37 Modprobe local root exploit Gregory Maxwell
2000-11-13 16:26 ` Torsten Duwe [this message]
2000-11-13 16:44   ` Francis Galiegue
2000-11-13 16:45     ` Torsten Duwe
2000-11-13 16:56       ` Chris Evans
2000-11-13 17:21         ` Jan Dvorak
2000-11-13 18:11         ` Torsten Duwe
2000-11-14  5:02           ` Peter Samuelson
2000-11-14  5:50             ` Keith Owens
2000-11-14  9:19               ` Florian Weimer
2000-11-14 10:42               ` Malcolm Beattie
2000-11-14 10:54                 ` Jakub Jelinek
2000-11-14 11:58                   ` Chris Evans
2000-11-14 10:58                 ` Keith Owens
2000-11-14 12:28           ` Nick Holloway
2000-11-14 14:01           ` David Woodhouse
2000-11-14  1:35         ` Horst von Brand
2000-11-13 19:46       ` Peter Samuelson
2000-11-14 11:29         ` Daniel Phillips
2000-11-14 14:23           ` Daniel Phillips
2000-11-14 16:25           ` David Relson
2000-11-15  4:09           ` Horst von Brand
2000-11-16  5:22       ` Alan Cox
2000-11-16  6:04         ` H. Peter Anvin
2000-11-16  6:14           ` Keith Owens
2000-11-16  6:16             ` H. Peter Anvin
2000-11-16 14:12         ` Torsten Duwe
2000-11-16 15:07           ` Alan Cox

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=14864.5656.706778.275865@ns.caldera.de \
    --to=duwe@caldera.de \
    --cc=Torsten.Duwe@caldera.de \
    --cc=greg@linuxpower.cx \
    --cc=linux-kernel@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.