From: Dave Chinner <david@fromorbit.com>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: "Darrick J. Wong" <darrick.wong@oracle.com>,
TongZhang <ztong@vt.edu>,
linux-xfs@vger.kernel.org,
"security@kernel.org>" <security@kernel.org>,
wenbo.s@samsung.com, ahmedmoneeb@gmail.com
Subject: Re: Missing security_inode_readlink() in xfs_file_ioctl()
Date: Tue, 14 Aug 2018 08:22:13 +1000 [thread overview]
Message-ID: <20180813222213.GC31495@dastard> (raw)
In-Reply-To: <20180813083047.plcvj4k5qkoxr26l@mwanda>
On Mon, Aug 13, 2018 at 11:30:48AM +0300, Dan Carpenter wrote:
> On Mon, Aug 13, 2018 at 09:35:28AM +0200, Carlos Maiolino wrote:
> > On Fri, Aug 10, 2018 at 10:02:17PM +0300, Dan Carpenter wrote:
> > > On Fri, Aug 10, 2018 at 09:09:31AM -0700, Darrick J. Wong wrote:
> > > > On Fri, Aug 10, 2018 at 12:22:29PM +0300, Dan Carpenter wrote:
> > > > > Hi XFS devs,
> > > > >
> > > > > We received this email on security@kernel.org. This is under
> > > > > CAP_SYS_ADMIN, but it maybe should also check with selinux?
> > > >
> > > > Hmm, so the point of adding a security_inode_readlink call would be to
> > > > restrict userland access xfs_readlink_by_handle further in case the
> > > > system has a policy whereby even possessing CAP_SYS_ADMIN is not by
> > > > itself sufficient to be able to read a symlink?
> > > >
> > > > IOWs, are there security policies where CAP_SYS_ADMIN isn't a "get
> > > > access to everything" wildcard? I imagine the answer is "yes" and
> > > > therefore xfs needs the call, but I thought I'd ask first.
> > > >
> > >
> > > Yeah... Forget about it. I pushed this out to you without really
> > > thinking about it, just to get it off my todo list and that wasn't the
> > > right thing.
> > >
> >
> > Just thought it was worth to mention...
> >
> > A long time ago, I've seen implementations where the system administration was
> > split between a sys admin and a 'security admin', where the security admin
> > removed some root permissions, and so, some very specific tasks could only be
> > done by the security admin.
> > All these were enforced by selinux.
> > Although, I don't see such implementations in ages, I still think they are out
> > there.
>
> That seems like a crazy thing. Sys admin can write to firmware, so you
> can't really separate root from sys admin. There are so many other
> things that you can do with sys admin.
>
> Another possibility is that maybe the NSA uses selinux for logging, to
> try out what files Snowden accessed. But it's sort of weird for us to
> try support some application which might not exist. TongZhang, try
> emailing these things directly to the selinux devs.
> selinux@tycho.nsa.gov They're really the best qualified to talk about
> missing LSM checks.
I suspect the the piece of the puzzle that is missing here is that
this is a private XFS _filehandle_ interface. This means it is used
to directly access inodes *without permission checks* by highly
trusted applications that are tightly integrated into filesystem
operation. e.g. HSMs, userspace file servers, online defrag tools,
backup/restore utilities, etc.
These applications are subject to very different access rules to
"normal" users - they are effectively considered an extension of the
kernel filesystem implementation as the filesystem may not function
correctly without those applications being able to do what they do
without interference. Hence the CAP_SYS_ADMIN check and the complete
absence of any other type of permission check.....
IOWs, denying inode access through these interfaces based on LSM
policy checks will almost certainly cause the applications that use
the private XFS filehandle interfaces to misbehave in unpredictable
ways.
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
prev parent reply other threads:[~2018-08-14 1:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <41DC519D-83A7-4964-A6C8-B16CFEEDB65F@vt.edu>
2018-08-10 9:22 ` Missing security_inode_readlink() in xfs_file_ioctl() Dan Carpenter
2018-08-10 16:09 ` Darrick J. Wong
2018-08-10 16:34 ` Linus Torvalds
2018-08-10 19:02 ` Dan Carpenter
2018-08-13 7:35 ` Carlos Maiolino
2018-08-13 8:30 ` Dan Carpenter
2018-08-13 22:22 ` Dave Chinner [this message]
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=20180813222213.GC31495@dastard \
--to=david@fromorbit.com \
--cc=ahmedmoneeb@gmail.com \
--cc=dan.carpenter@oracle.com \
--cc=darrick.wong@oracle.com \
--cc=linux-xfs@vger.kernel.org \
--cc=security@kernel.org \
--cc=wenbo.s@samsung.com \
--cc=ztong@vt.edu \
/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;
as well as URLs for NNTP newsgroup(s).