From: Stephen Smalley <sds@tycho.nsa.gov>
To: Nick Kralevich <nnk@google.com>
Cc: Paul Moore <paul@paul-moore.com>,
John Stultz <john.stultz@linaro.org>,
Jeffrey Vander Stoep <jeffv@google.com>,
Antonio Murdaca <amurdaca@redhat.com>,
lkml <linux-kernel@vger.kernel.org>,
Android Kernel Team <kernel-team@android.com>
Subject: Re: [Regression?] 1ea0ce4069 ("selinux: allow changing labels for cgroupfs") stops Android from booting
Date: Mon, 27 Feb 2017 16:31:59 -0500 [thread overview]
Message-ID: <1488231119.19819.58.camel@tycho.nsa.gov> (raw)
In-Reply-To: <1488230608.19819.51.camel@tycho.nsa.gov>
On Mon, 2017-02-27 at 16:23 -0500, Stephen Smalley wrote:
> On Mon, 2017-02-27 at 12:48 -0800, Nick Kralevich wrote:
> >
> > On Mon, Feb 27, 2017 at 11:53 AM, Stephen Smalley <sds@tycho.nsa.go
> > v>
> > wrote:
> > >
> > >
> > > >
> > > >
> > > > I can reproduce it on angler (with a back-port of just that
> > > > patch),
> > > > although I am unclear on the cause. The patch is only supposed
> > > > to
> > > > enable explicit setting of security labels by userspace on
> > > > cgroup
> > > > files, so it isn't supposed to cause any breakage under
> > > > existing
> > > > policy. Prior to the patch, the kernel would always just
> > > > return
> > > > -1
> > > > with errno EOPNOTSUPP upon attempts to set security labels on
> > > > cgroup
> > > > files; with the patch, the kernel may instead return -1 with
> > > > errno
> > > > EACCES if not allowed. So I suppose if userspace was
> > > > explicitly
> > > > testing for EOPNOTSUPP and not failing hard in that case, it
> > > > might
> > > > cause breakage. Not sure why existing userspace would be
> > > > trying
> > > > to
> > > > relabel cgroup files, unless it is just a recursive restorecon
> > > > that
> > > > happens to traverse into a cgroup mount (and in that case, not
> > > > sure
> > > > why
> > > > it would be fatal). Other possible interaction would be use of
> > > > setfscreatecon() prior to creating a file in cgroup.
> > >
> > > Oh, I see - it is the latter.
> > >
> > > For example, init.rc does mkdir /dev/cpuctl/bg_non_interactive,
> > > which
> > > internally looks up the context for that directory from
> > > file_contexts
> > > and does a setfscreatecon() followed by a mkdir(). Previously,
> > > that
> > > was ignored because cgroup did not support anything other than
> > > the
> > > policy-defined label. But now it will try to use that label,
> > > which
> > > in
> > > turn will trigger a denial in enforcing mode and the create will
> > > fail.
> > >
> > > So this is an incompatible change and needs to be reverted.
> > > We'll need to wrap it up with a policy capability or something to
> > > allow
> > > it to be enabled only if the policy correctly supports it. Even
> > > better, we should instead just allow the policy to specify which
> > > filesystems should support this behavior (already on the issues
> > > list).
> > >
> >
> > If Android is the only system affected by this bug, I would prefer
> > to
> > just fix Android to allow for this patch, rather than having
> > additional kernel complexity.
>
> Well, it does break userspace (even if it happens to only affect
> Android, which isn't clear, e.g. possibly a distribution would
> likewise
> suffer breakage under a tighter policy), and we already have a long-
> standing open issue to replace the current set of whitelisted
> filesystem types with something configuration-driven. So I'm ok with
> reverting it and requiring it to be done in a more general way. The
> latter is something we want regardless.
Also, I'm not sure it can be fixed cleanly just by policy, or at least
not just via kernel policy. You wouldn't want to allow creation of
cgroup files in the contexts presently specified via file_contexts; you
would need to modify file_contexts to correctly specify the cgroup file
contexts. And that in turn raises another existing issue:
distinguishing the label for the mountpoint directory versus the
mounted directory.
next prev parent reply other threads:[~2017-02-27 21:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-23 18:43 John Stultz
2017-02-24 0:01 ` Paul Moore
2017-02-25 2:01 ` John Stultz
2017-02-25 3:44 ` Nick Kralevich
[not found] ` <CAFJ0LnEtnDNzo_4_NYYdnkFuoPvVvx5f+VfjOCnGz8Z=kcyYQg@mail.gmail.com>
2017-02-25 4:30 ` John Stultz
2017-02-27 19:42 ` Stephen Smalley
2017-02-27 19:53 ` Stephen Smalley
2017-02-27 20:48 ` Nick Kralevich
2017-02-27 21:23 ` Stephen Smalley
2017-02-27 21:31 ` Stephen Smalley [this message]
2017-02-28 0:18 ` Paul Moore
2017-02-28 15:29 ` Stephen Smalley
2017-02-28 17:23 ` Paul Moore
2017-03-09 17:28 ` Greg KH
2017-03-09 17:57 ` Stephen Smalley
2017-03-09 18:36 ` Greg KH
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=1488231119.19819.58.camel@tycho.nsa.gov \
--to=sds@tycho.nsa.gov \
--cc=amurdaca@redhat.com \
--cc=jeffv@google.com \
--cc=john.stultz@linaro.org \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nnk@google.com \
--cc=paul@paul-moore.com \
/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
all inboxes | Powered by JetHome®