From: Keith Owens <kaos@ocs.com.au>
To: Peter Samuelson <peter@cadcamlab.org>
Cc: Torsten.Duwe@caldera.de, Chris Evans <chris@scary.beasts.org>,
linux-kernel@vger.kernel.org
Subject: Re: Modprobe local root exploit
Date: Tue, 14 Nov 2000 16:50:19 +1100 [thread overview]
Message-ID: <3864.974181019@kao2.melbourne.sgi.com> (raw)
In-Reply-To: Your message of "Mon, 13 Nov 2000 23:02:10 MDT." <20001113230210.F18203@wire.cadcamlab.org>
On Mon, 13 Nov 2000 23:02:10 -0600,
Peter Samuelson <peter@cadcamlab.org> wrote:
>
>[Torsten Duwe]
>> + for (p = module_name; *p; p++)
>> + {
>> + if (isalnum(*p) || *p == '_' || *p == '-')
>> + continue;
>> +
>> + return -EINVAL;
>> + }
>
>I think you just broke at least some versions of devfs. I don't
>remember if the feature is still around, but I know it *used* to be
>possible to request_module("/dev/foobar"), which requires '/' in the
>name.
That feature of devfs is definitely still around, it is critical to
devfs.
All these patches against request_module are attacking the problem at
the wrong point. The kernel can request any module name it likes,
using any string it likes, as long as the kernel generates the name.
The real problem is when the kernel blindly accepts some user input and
passes it straight to modprobe, then the kernel is acting like a setuid
wrapper for a program that was never designed to run setuid.
At the very least, interface names which are taken directly from the
user should be prefixed with "user-interface-" before being passed to
modprobe. The sysadmin can set "alias user-interface-eth0 eth0" if
they want to use this feature. Passing the interface name unchanged is
asking for trouble, as Chris Evans pointed out, you can abuse this
"feature" to load any module.
I have nearly finished the security review of modutils, 2.3.20 will be
out later tonight. It treats the kmod environment as tainted, forces
the last parameter to be treated as a module name even if it starts
with '-', only accepts one module name and refuses 'variable=value'
strings. I find it rather ironic to be treating kernel supplied data
as tainted.
-
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/
next prev parent reply other threads:[~2000-11-14 6:21 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
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 [this message]
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=3864.974181019@kao2.melbourne.sgi.com \
--to=kaos@ocs.com.au \
--cc=Torsten.Duwe@caldera.de \
--cc=chris@scary.beasts.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peter@cadcamlab.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox