ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Shuah Khan <shuah@kernel.org>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
	ksummit <Ksummit-discuss@lists.linuxfoundation.org>
Subject: Re: [Ksummit-discuss] [MAINTAINERS SUMMIT] Moving debugfs file systems into sysfs
Date: Tue, 2 Oct 2018 15:22:38 -0700	[thread overview]
Message-ID: <20181002222238.GA11788@kroah.com> (raw)
In-Reply-To: <0e19e6d0-47bd-d57f-8e31-e3521c467fe0@kernel.org>

On Tue, Oct 02, 2018 at 03:57:30PM -0600, Shuah Khan wrote:
> On 10/02/2018 03:37 PM, Mauro Carvalho Chehab wrote:
> > Em Tue, 2 Oct 2018 09:30:01 -0700
> > Greg Kroah-Hartman <gregkh@linuxfoundation.org> escreveu:
> > 
> >> On Tue, Oct 02, 2018 at 09:17:30AM -0700, Greg Kroah-Hartman wrote:
> >>> On Tue, Oct 02, 2018 at 10:00:29AM -0600, Shuah Khan wrote:  
> >>>> On 10/02/2018 08:59 AM, Olof Johansson wrote:  
> >>>>> On Tue, Oct 2, 2018 at 6:07 AM Steven Rostedt <rostedt@goodmis.org> wrote:  
> >>>>>>
> >>>>>> On Mon, 1 Oct 2018 18:18:56 -0700
> >>>>>> Greg KH <gregkh@linuxfoundation.org> wrote:
> >>>>>>  
> >>>>>>> On Mon, Oct 01, 2018 at 02:04:02PM -0400, Steven Rostedt wrote:  
> >>>>>>>> At Kernel Recipes, I talked with some people that have mature
> >>>>>>>> interfaces in the debugfs directory, but they can not access them on
> >>>>>>>> systems that have debugfs disabled. What would be the process to have
> >>>>>>>> these systems move out of debugfs? Should they create their own fs and
> >>>>>>>> be mounted in /sys/kernel, with a dedicated directory if the file system
> >>>>>>>> is enabled in the kernel (I had tracefs do that).
> >>>>>>>>
> >>>>>>>> Is this something we should discuss at Maintainers Summit? What is the
> >>>>>>>> process for mature debugfs directories? What's the justification to
> >>>>>>>> have them moved? Is there a better answer for this?  
> >>>>>>>
> >>>>>>> It's a technical topic, so maintainers summit doesn't make sense.
> >>>>>>>
> >>>>>>> Stuff in debugfs should NEVER be used for anything "real" or anything
> >>>>>>> other than debugging.  So I would argue that that code needs to be fixed
> >>>>>>> up now anyway, as most distros are disabling debugfs for the obvious
> >>>>>>> reasons (and Android is also turning it off).  
> >>>>>>
> >>>>>> The funny part is, things used for debugging tend to turn into
> >>>>>> something that people want on production systems (tracing,
> >>>>>> perf, powertop, etc).
> >>>>>>  
> >>>>>>>
> >>>>>>> As for where to put it, it all depends on exactly what it is, and what
> >>>>>>> it does and who uses it.  So it's almost always a case-by-case basis.
> >>>>>>>
> >>>>>>> Any specific examples you wish to share of code that needs this?
> >>>>>>>  
> >>>>>>
> >>>>>> tracefs was one example, but someone was talking to me at Kernel
> >>>>>> Recipes and wanted had another directory in debugfs and wanted it out
> >>>>>> as it was stable and wanted it exposed when debugfs is turned off.
> >>>>>> Unfortunately, this was discussed at an evening event, and I don't
> >>>>>> recall the specifics.  
> >>>>>
> >>>>> One really useful criteria for graduating some service to sysfs would
> >>>>> be to have namespaces and security aspects sorted out for it. Being in
> >>>>> debugfs you can ignore all of that.  
> >>>>
> >>>> Yes. Moving to debugfs service to sysfs would make it more secure. However,
> >>>> security is important even if it stays in debugfs.
> >>>>
> >>>> I don't believe that is safe to have a lower security bar for dbugfs
> >>>> interfaces. Not all distros disable debugfs and if debugfs becomes
> >>>> vulnerability, it would become target on distros that don't disable.  
> >>>
> >>> Until about 8 months or so ago, maybe a year, debugfs was totally
> >>> insecure and it was very trivial to use to crash the kernel.  Which is
> >>> why it is a good idea to lock it down and not mount it on "untrusted"
> >>> systems.  
> >>
> >> Based on a discussion on another thread on a public list, there are
> >> still remaining issues with debugfs that can cause major problems.  So
> >> no one should ever mount it on an untrusted system still.
> >>
> >> It is getting better, but the issues are tough to resolve, give us
> >> another year or so :)
> > 
> > Even if it won't be possible to crash the Kernel or escalate
> > privileges, I suspect that several stuff in debugfs should never
> > be enabled on production systems, as they may reveal things like
> > memory addresses and other stuff that could be used to help someone
> > to crack a system.
> > 
> 
> Unfortunately distros enable DEBUG_FS. I checked a couple of distro configs.
> 
> One popular distro enables:
> 
> CONFIG_BLK_DEBUG_FS=y
> CONFIG_KVM_DEBUG_FS=y
> CONFIG_DEBUG_FS=y
> 
> Another one enables:
> 
> CONFIG_BLK_DEBUG_FS=y
> CONFIG_DEBUG_FS=y
> 
> It looks to me that this message need to be communicated widely so distros can
> tighten things up.

Luckily debugfs was made "root only by default" a while ago, to help
mitigate this problem.  So while it is present on a number of distros,
the "attack surface" is greatly reduced.

That being said, I bet those distros can drop those config options and
be fine.

thanks,

greg k-h

  reply	other threads:[~2018-10-02 22:22 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-01 18:04 Steven Rostedt
2018-10-02  1:18 ` Greg KH
2018-10-02  1:26   ` Greg KH
2018-10-02 13:07   ` Steven Rostedt
2018-10-02 14:59     ` Olof Johansson
2018-10-02 16:00       ` Shuah Khan
2018-10-02 16:17         ` Greg Kroah-Hartman
2018-10-02 16:30           ` Greg Kroah-Hartman
2018-10-02 21:37             ` Mauro Carvalho Chehab
2018-10-02 21:57               ` Shuah Khan
2018-10-02 22:22                 ` Greg Kroah-Hartman [this message]
2018-10-03 12:59                   ` Jan Kara
2018-10-03 13:40                     ` Greg Kroah-Hartman
2018-10-03 13:44                       ` Jiri Kosina
2018-10-03 14:32                         ` Greg Kroah-Hartman
2018-10-03 14:33                           ` Greg Kroah-Hartman
2018-10-04 11:50                             ` Jiri Kosina
2018-10-03 14:53                       ` Jan Kara
2018-10-04 16:11                         ` Takashi Iwai
2018-10-03 14:11                     ` Shuah Khan
2018-10-03 10:06               ` Sudeep Holla
2018-10-03 13:13                 ` Mark Brown
2018-10-03 14:52                   ` Sudeep Holla
2018-10-02  8:40 ` Jani Nikula
2018-10-02 13:11   ` Steven Rostedt
2018-10-02 21:32   ` Mauro Carvalho Chehab
2018-10-03  6:23     ` Jani Nikula

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181002222238.GA11788@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=Ksummit-discuss@lists.linuxfoundation.org \
    --cc=mchehab+samsung@kernel.org \
    --cc=shuah@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox