From: Ben Hutchings <bhutchings@solarflare.com>
To: Vasiliy Kulikov <segoon@openwall.com>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Kees Cook <kees.cook@canonical.com>,
Eugene Teo <eugene@redhat.com>,
Dan Rosenberg <dan.j.rosenberg@gmail.com>,
"David S. Miller" <davem@davemloft.net>
Subject: Re: module loading with CAP_NET_ADMIN
Date: Thu, 24 Feb 2011 16:34:25 +0000 [thread overview]
Message-ID: <1298565265.2613.16.camel@bwh-desktop> (raw)
In-Reply-To: <20110224151238.GA16916@albatros>
On Thu, 2011-02-24 at 18:12 +0300, Vasiliy Kulikov wrote:
> Hi netdev folks,
>
> I'd like to discuss the ability to load any modules from /lib/modules/
> by a process with CAP_NET_ADMIN. Since Linux 2.6.32 [1] there is such
> possibility:
>
> root@albatros:~# grep Cap /proc/$$/status
> CapInh: 0000000000000000
> CapPrm: fffffffc00001000
> CapEff: fffffffc00001000
> CapBnd: fffffffc00001000
> root@albatros:~# lsmod | grep xfs
> root@albatros:~# ifconfig xfs
> xfs: error fetching interface information: Device not found
> root@albatros:~# lsmod | grep xfs
> xfs 767011 0
> exportfs 4226 2 xfs,nfsd
Eek!
> Ability of CAP_NET_ADMIN to load the driver to work with a particular
> network device is rational; however, one may load any module not even
> related to network this way. Hopefully, this is not equal to
> CAP_SYS_MODULE since the module set is restricted to /lib/modules
> (additionally may be disabled with /proc/sys/kernel/modules_disabled),
> but the idea of non-netdev module loading is weird.
>
> My proposal is changing request_module("%s", name) to something like
> request_module("netdev-%s", name) inside of dev_load() and adding
> aliases to related drivers.
AFAIK these interface-name aliases are usually defined by distribution
configuration files rather than within the modules themselves. And that
behaviour is pretty much obsolete now that we have hotplug and udev.
> This would allow to load only netdev
> modules via these ioctls. I'm not sure what modules should be patches -
> at least real physical netdevices have names different from drivers'
> names, so they don't need patching. I suppose the list is not big.
The only modules I can see that declare aliases like this are:
net/ipv4/ip_gre.c:MODULE_ALIAS("gre0");
net/ipv4/ipip.c:MODULE_ALIAS("tunl0");
net/ipv6/sit.c:MODULE_ALIAS("sit0");
Ben.
--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
next prev parent reply other threads:[~2011-02-24 16:34 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-24 15:12 module loading with CAP_NET_ADMIN Vasiliy Kulikov
2011-02-24 16:34 ` Ben Hutchings [this message]
2011-02-25 12:30 ` Vasiliy Kulikov
2011-02-25 15:14 ` [PATCH] don't allow CAP_NET_ADMIN to load non-netdev kernel modules Vasiliy Kulikov
2011-02-25 17:25 ` Valdis.Kletnieks
2011-02-25 17:47 ` Vasiliy Kulikov
2011-02-25 17:48 ` Ben Hutchings
2011-02-25 18:47 ` David Miller
2011-02-25 19:02 ` Vasiliy Kulikov
2011-02-25 19:05 ` David Miller
2011-02-25 19:07 ` Ben Hutchings
2011-02-25 19:16 ` David Miller
2011-02-25 19:30 ` Ben Hutchings
2011-02-25 19:43 ` David Miller
2011-02-25 19:53 ` Ben Hutchings
2011-02-25 20:37 ` David Miller
2011-02-25 20:38 ` Ben Hutchings
2011-02-25 20:59 ` Michał Mirosław
2011-02-27 20:22 ` Arnd Bergmann
2011-02-28 9:29 ` Michael Tokarev
2011-02-28 9:51 ` Vasiliy Kulikov
2011-02-28 19:23 ` David Miller
2011-03-01 19:48 ` [PATCH] net: " Vasiliy Kulikov
2011-03-01 20:13 ` Ben Hutchings
2011-03-01 21:33 ` [PATCH v2] " Vasiliy Kulikov
2011-03-02 7:15 ` Michael Tokarev
2011-03-09 22:06 ` Vasiliy Kulikov
2011-03-09 22:09 ` David Miller
2011-03-09 22:53 ` James Morris
2011-03-10 9:49 ` Vasiliy Kulikov
2011-03-02 16:01 ` Kees Cook
2011-03-02 19:39 ` Jake Edge
2011-03-02 19:43 ` Vasiliy Kulikov
2011-03-02 19:49 ` Jake Edge
2011-03-02 20:18 ` Vasiliy Kulikov
2011-03-02 20:38 ` Jake Edge
2011-03-02 20:40 ` Jake Edge
2011-03-22 20:47 ` Eric Paris
2011-03-22 20:47 ` Eric Paris
2011-03-24 15:37 ` Serge E. Hallyn
2011-03-24 18:03 ` Eric Paris
2011-03-24 18:33 ` Ben Hutchings
2011-03-24 20:26 ` Serge E. Hallyn
2011-03-24 21:39 ` Stephen Hemminger
2011-03-24 21:46 ` David Miller
2011-03-24 21:57 ` Serge E. Hallyn
2011-03-24 22:15 ` Eric Paris
2011-03-24 21:57 ` Greg KH
2011-03-26 10:35 ` Vasiliy Kulikov
2011-02-27 11:44 ` [PATCH] " Vasiliy Kulikov
2011-02-27 23:18 ` David Miller
2011-02-27 23:19 ` David Miller
2011-02-25 15:29 ` module loading with CAP_NET_ADMIN Michael Tokarev
2011-02-25 15:57 ` Vasiliy Kulikov
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=1298565265.2613.16.camel@bwh-desktop \
--to=bhutchings@solarflare.com \
--cc=dan.j.rosenberg@gmail.com \
--cc=davem@davemloft.net \
--cc=eugene@redhat.com \
--cc=kees.cook@canonical.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=segoon@openwall.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.