• David Howells's avatar
    debugfs: Restrict debugfs when the kernel is locked down · 5496197f
    David Howells authored
    Disallow opening of debugfs files that might be used to muck around when
    the kernel is locked down as various drivers give raw access to hardware
    through debugfs.  Given the effort of auditing all 2000 or so files and
    manually fixing each one as necessary, I've chosen to apply a heuristic
    instead.  The following changes are made:
    
     (1) chmod and chown are disallowed on debugfs objects (though the root dir
         can be modified by mount and remount, but I'm not worried about that).
    
     (2) When the kernel is locked down, only files with the following criteria
         are permitted to be opened:
    
    	- The file must have mode 00444
    	- The file must not have ioctl methods
    	- The file must not have mmap
    
     (3) When the kernel is locked down, files may only be opened for reading.
    
    Normal device interaction should be done through configfs, sysfs or a
    miscdev, not debugfs.
    
    Note that this makes it unnecessary to specifically lock down show_dsts(),
    show_devs() and show_call() in the asus-wmi driver.
    
    I would actually prefer to lock down all files by default and have the
    the files unlocked by the creator.  This is tricky to manage correctly,
    though, as there are 19 creation functions and ~1600 call sites (some of
    them in loops scanning tables).
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    cc: acpi4asus-user@lists.sourceforge.net
    cc: platform-driver-x86@vger.kernel.org
    cc: Matthew Garrett <mjg59@srcf.ucam.org>
    cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Greg KH <greg@kroah.com>
    Cc: Rafael J. Wysocki <rafael@kernel.org>
    Signed-off-by: default avatarMatthew Garrett <matthewgarrett@google.com>
    Signed-off-by: default avatarJames Morris <jmorris@namei.org>
    5496197f
file.c 38.4 KB