Thread (44 messages) 44 messages, 12 authors, 2019-11-15

Re: [PATCH 4/7] Teach SELinux about a new userfaultfd class

flat view

From: Andy Lutomirski <luto@kernel.org>
Date: 2019-10-13 00:46:32
Also in: lkml

On Sat, Oct 12, 2019 at 5:12 PM Daniel Colascione [off-list ref] wrote:
On Sat, Oct 12, 2019 at 4:09 PM Andy Lutomirski [off-list ref] wrote:
quoted
On Sat, Oct 12, 2019 at 12:16 PM Daniel Colascione [off-list ref] wrote:
quoted
Use the secure anonymous inode LSM hook we just added to let SELinux
policy place restrictions on userfaultfd use. The create operation
applies to processes creating new instances of these file objects;
transfer between processes is covered by restrictions on read, write,
and ioctl access already checked inside selinux_file_receive.
This is great, and I suspect we'll want it for things like SGX, too.
But the current design seems like it will make it essentially
impossible for SELinux to reference an anon_inode class whose
file_operations are in a module, and moving file_operations out of a
module would be nasty.

Could this instead be keyed off a new struct anon_inode_class, an
enum, or even just a string?
The new LSM hook already receives the string that callers pass to the
anon_inode APIs; modules can look at that instead of the fops if they
want. The reason to pass both the name and the fops through the hook
is to allow LSMs to match using fops comparison (which seems less
prone to breakage) when possible and rely on string matching when it
isn't.
I suppose that whoever makes the first module that wants to use this
mechanism can have the fun task of reworking it.  There's nothing
user-visible here that would make it hard to change in the future.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help