Thread (49 messages) flat view 49 messages, 11 authors, 2017-11-30

Re: [PATCH v5 next 1/5] modules:capabilities: add request_module_cap()

From: "Luis R. Rodriguez" <mcgrof@kernel.org>
Date: 2017-11-28 22:48:55
Also in: linux-security-module, lkml

On Tue, Nov 28, 2017 at 02:18:18PM -0800, Kees Cook wrote:
On Tue, Nov 28, 2017 at 2:12 PM, Luis R. Rodriguez [off-list ref] wrote:
quoted
On Tue, Nov 28, 2017 at 01:39:58PM -0800, Kees Cook wrote:
quoted
On Tue, Nov 28, 2017 at 1:16 PM, Luis R. Rodriguez [off-list ref] wrote:
quoted
And *all* auto-loading uses aliases? What's the difference between auto-loading
and direct-loading?
The difference is the process privileges. Unprivilged autoloading
(e.g. int n_hdlc = N_HDLC; ioctl(fd,
TIOCSETD, &n_hdlc)), triggers a privileged call to finit_module()
under CAP_SYS_MODULE.
Ah, so system call implicated request_module() calls.
Yup. Unprivileged user does something that ultimately hits a
request_module() in the kernel. Then the kernel calls out with the
usermode helper (which has CAP_SYS_MODULE) and calls finit_module().
Thanks, using this terminology is much better to understand than auto-loading,
given it does make it clear an unprivileged call was one that initiated the
request_module() call, there are many uses of request_module() which *are*
privileged.
quoted
OK and since CAP_SYS_MODULE is much more restrictive one could argue, what's the
point here?
The goal is to block an unprivileged user from being able to trigger a
module load without blocking root from loading modules directly.
I see now. Do we have an audit of all system calls which implicate a
request_module() call? Networking is a good example for sure to start
off with but I was curious if we have a grasp of how wide spread this
could be.

I'll go review the patches again now with all this in mind.

  Luis
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help