Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEjxPJ5evWDSv-T-p=4OX29Pr584ZRAsnYoxSRd4qFDoryB+fQ@mail.gmail.com>
Date: Tue, 8 Sep 2020 09:42:30 -0400
From: Stephen Smalley <stephen.smalley.work@...il.com>
To: Mimi Zohar <zohar@...ux.ibm.com>
Cc: Mickaël Salaün <mic@...ikod.net>, 
	linux-kernel <linux-kernel@...r.kernel.org>, Aleksa Sarai <cyphar@...har.com>, 
	Alexei Starovoitov <ast@...nel.org>, Al Viro <viro@...iv.linux.org.uk>, 
	Andrew Morton <akpm@...ux-foundation.org>, Andy Lutomirski <luto@...nel.org>, 
	Christian Brauner <christian.brauner@...ntu.com>, Christian Heimes <christian@...hon.org>, 
	Daniel Borkmann <daniel@...earbox.net>, Deven Bowers <deven.desai@...ux.microsoft.com>, 
	Dmitry Vyukov <dvyukov@...gle.com>, Eric Biggers <ebiggers@...nel.org>, 
	Eric Chiang <ericchiang@...gle.com>, Florian Weimer <fweimer@...hat.com>, 
	James Morris <jmorris@...ei.org>, Jan Kara <jack@...e.cz>, Jann Horn <jannh@...gle.com>, 
	Jonathan Corbet <corbet@....net>, Kees Cook <keescook@...omium.org>, 
	Lakshmi Ramasubramanian <nramas@...ux.microsoft.com>, Matthew Garrett <mjg59@...gle.com>, 
	Matthew Wilcox <willy@...radead.org>, Michael Kerrisk <mtk.manpages@...il.com>, 
	Miklos Szeredi <mszeredi@...hat.com>, 
	Philippe Trébuchet <philippe.trebuchet@....gouv.fr>, 
	Scott Shell <scottsh@...rosoft.com>, 
	Sean Christopherson <sean.j.christopherson@...el.com>, Shuah Khan <shuah@...nel.org>, 
	Steve Dower <steve.dower@...hon.org>, Steve Grubb <sgrubb@...hat.com>, 
	Tetsuo Handa <penguin-kernel@...ove.sakura.ne.jp>, 
	Thibaut Sautereau <thibaut.sautereau@...p-os.org>, 
	Vincent Strubel <vincent.strubel@....gouv.fr>, kernel-hardening@...ts.openwall.com, 
	linux-api@...r.kernel.org, linux-integrity@...r.kernel.org, 
	LSM List <linux-security-module@...r.kernel.org>, 
	Linux FS Devel <linux-fsdevel@...r.kernel.org>, 
	Thibaut Sautereau <thibaut.sautereau@....gouv.fr>, 
	Mickaël Salaün <mic@...ux.microsoft.com>, 
	John Johansen <john.johansen@...onical.com>
Subject: Re: [RFC PATCH v8 1/3] fs: Introduce AT_INTERPRETED flag for faccessat2(2)

On Tue, Sep 8, 2020 at 9:29 AM Mimi Zohar <zohar@...ux.ibm.com> wrote:
>
> On Tue, 2020-09-08 at 08:52 -0400, Stephen Smalley wrote:
> > On Tue, Sep 8, 2020 at 8:50 AM Stephen Smalley
> > <stephen.smalley.work@...il.com> wrote:
> > >
> > > On Tue, Sep 8, 2020 at 8:43 AM Mickaël Salaün <mic@...ikod.net> wrote:
> > > >
> > > >
> > > > On 08/09/2020 14:28, Mimi Zohar wrote:
> > > > > Hi Mickael,
> > > > >
> > > > > On Tue, 2020-09-08 at 09:59 +0200, Mickaël Salaün wrote:
> > > > >> +                    mode |= MAY_INTERPRETED_EXEC;
> > > > >> +                    /*
> > > > >> +                     * For compatibility reasons, if the system-wide policy
> > > > >> +                     * doesn't enforce file permission checks, then
> > > > >> +                     * replaces the execute permission request with a read
> > > > >> +                     * permission request.
> > > > >> +                     */
> > > > >> +                    mode &= ~MAY_EXEC;
> > > > >> +                    /* To be executed *by* user space, files must be readable. */
> > > > >> +                    mode |= MAY_READ;
> > > > >
> > > > > After this change, I'm wondering if it makes sense to add a call to
> > > > > security_file_permission().  IMA doesn't currently define it, but
> > > > > could.
> > > >
> > > > Yes, that's the idea. We could replace the following inode_permission()
> > > > with file_permission(). I'm not sure how this will impact other LSMs though.
>
> I wasn't suggesting replacing the existing security_inode_permission
> hook later, but adding a new security_file_permission hook here.
>
> > >
> > > They are not equivalent at least as far as SELinux is concerned.
> > > security_file_permission() was only to be used to revalidate
> > > read/write permissions previously checked at file open to support
> > > policy changes and file or process label changes.  We'd have to modify
> > > the SELinux hook if we wanted to have it check execute access even if
> > > nothing has changed since open time.
> >
> > Also Smack doesn't appear to implement file_permission at all, so it
> > would skip Smack checking.
>
> My question is whether adding a new security_file_permission call here
> would break either SELinux or Apparmor?

selinux_inode_permission() has special handling for MAY_ACCESS so we'd
need to duplicate that into selinux_file_permission() ->
selinux_revalidate_file_permission().  Also likely need to adjust
selinux_file_permission() to explicitly check whether the mask
includes any permissions not checked at open time.  So some changes
would be needed here.  By default, it would be a no-op unless there
was a policy reload or the file was relabeled between the open(2) and
the faccessat(2) call.

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.