Re: [PATCH V31 25/25] debugfs: Disable open() when kernel is locked down

From: Greg KH
Date: Tue Mar 26 2019 - 20:31:37 EST


On Tue, Mar 26, 2019 at 11:27:41AM -0700, Matthew Garrett wrote:
> From: Matthew Garrett <mjg59@xxxxxxxxxx>
>
> debugfs has not been meaningfully audited in terms of ensuring that
> userland cannot trample over the kernel. At Greg's request, disable
> access to it entirely when the kernel is locked down. This is done at
> open() time rather than init time as the kernel lockdown status may be
> made stricter at runtime.
>
> Signed-off-by: Matthew Garrett <mjg59@xxxxxxxxxx>
> Cc: gregkh@xxxxxxxxxxxxxxxxxxx
> ---
> fs/debugfs/file.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
> index 4fce1da7db23..9ae12ef29ba0 100644
> --- a/fs/debugfs/file.c
> +++ b/fs/debugfs/file.c
> @@ -142,6 +142,9 @@ static int open_proxy_open(struct inode *inode, struct file *filp)
> const struct file_operations *real_fops = NULL;
> int r;
>
> + if (kernel_is_locked_down("debugfs", LOCKDOWN_INTEGRITY))
> + return -EPERM;

Why allow all this, why not just abort the registering of the filesystem
with the vfs core so it can't even be mounted?

thanks,

greg k-h