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.