All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Moore <paul@paul-moore.com>
To: Richard Guy Briggs <rgb@redhat.com>
Cc: Jeff Mahoney <jeffm@suse.com>,
	Linux-Audit Mailing List <linux-audit@redhat.com>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org, Eric Paris <eparis@parisplace.org>,
	Steve Grubb <sgrubb@redhat.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Eric Paris <eparis@redhat.com>, Tony Jones <tonyj@suse.de>
Subject: Re: [PATCH v4 2/3] audit: add support for the openat2 syscall
Date: Wed, 9 Feb 2022 17:31:38 -0500	[thread overview]
Message-ID: <CAHC9VhRn7MGRqww2M28i8eD_EK3-OVtyqiMeT72Y7N_=f0MM9w@mail.gmail.com> (raw)
In-Reply-To: <20220209221352.GG1708086@madcap2.tricolour.ca>

On Wed, Feb 9, 2022 at 5:14 PM Richard Guy Briggs <rgb@redhat.com> wrote:
>
> On 2022-02-09 16:18, Paul Moore wrote:
> > On Wed, Feb 9, 2022 at 10:57 AM Paul Moore <paul@paul-moore.com> wrote:
> > > On Tue, Feb 8, 2022 at 10:44 PM Jeff Mahoney <jeffm@suse.com> wrote:
> > > >
> > > > Hi Richard -
> > > >
> > > > On 5/19/21 16:00, Richard Guy Briggs wrote:
> > > > > The openat2(2) syscall was added in kernel v5.6 with commit fddb5d430ad9
> > > > > ("open: introduce openat2(2) syscall")
> > > > >
> > > > > Add the openat2(2) syscall to the audit syscall classifier.
> > > > >
> > > > > Link: https://github.com/linux-audit/audit-kernel/issues/67
> > > > > Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
> > > > > Link: https://lore.kernel.org/r/f5f1a4d8699613f8c02ce762807228c841c2e26f.1621363275.git.rgb@redhat.com
> > > > > ---
> > > >
> > > > [...]
> > > >
> > > > > diff --git a/kernel/auditsc.c b/kernel/auditsc.c
> > > > > index d775ea16505b..3f59ab209dfd 100644
> > > > > --- a/kernel/auditsc.c
> > > > > +++ b/kernel/auditsc.c
> > > > > @@ -76,6 +76,7 @@
> > > > >  #include <linux/fsnotify_backend.h>
> > > > >  #include <uapi/linux/limits.h>
> > > > >  #include <uapi/linux/netfilter/nf_tables.h>
> > > > > +#include <uapi/linux/openat2.h>
> > > > >
> > > > >  #include "audit.h"
> > > > >
> > > > > @@ -196,6 +197,8 @@ static int audit_match_perm(struct audit_context *ctx, int mask)
> > > > >               return ((mask & AUDIT_PERM_WRITE) && ctx->argv[0] == SYS_BIND);
> > > > >       case AUDITSC_EXECVE:
> > > > >               return mask & AUDIT_PERM_EXEC;
> > > > > +     case AUDITSC_OPENAT2:
> > > > > +             return mask & ACC_MODE((u32)((struct open_how *)ctx->argv[2])->flags);
> > > > >       default:
> > > > >               return 0;
> > > > >       }
> > > >
> > > > ctx->argv[2] holds a userspace pointer and can't be dereferenced like this.
> > > >
> > > > I'm getting oopses, like so:
> > > > BUG: unable to handle page fault for address: 00007fff961bbe70
> > >
> > > Thanks Jeff.
> > >
> > > Yes, this is obviously the wrong thing to being doing; I remember
> > > checking to make sure we placed the audit_openat2_how() hook after the
> > > open_how was copied from userspace, but I missed the argv dereference
> > > in the syscall exit path when reviewing the code.
> > >
> > > Richard, as we are already copying the open_how info into
> > > audit_context::openat2 safely, the obvious fix is to convert
> > > audit_match_perm() to use the previously copied value instead of argv.
> > > If you can't submit a patch for this today please let me know.
> >
> > I haven't heard anything from Richard so I put together a patch which
> > should fix the problem (link below).  It's currently untested, but
> > I've got a kernel building now with the patch ...
>
> Well, the day wasn't over yet...  I've compiled and tested it.

Yes, I tested my patch too and everything looks good on my end.

For future reference, while I didn't explicitly ask you to acknowledge
this thread and that you were working on a patch (I probably should
have), it would have been nice if you could have sent a quick note to
the list.

-- 
paul-moore.com

WARNING: multiple messages have this Message-ID (diff)
From: Paul Moore <paul@paul-moore.com>
To: Richard Guy Briggs <rgb@redhat.com>
Cc: Tony Jones <tonyj@suse.de>, Jeff Mahoney <jeffm@suse.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Eric Paris <eparis@redhat.com>,
	Linux-Audit Mailing List <linux-audit@redhat.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, Eric Paris <eparis@parisplace.org>
Subject: Re: [PATCH v4 2/3] audit: add support for the openat2 syscall
Date: Wed, 9 Feb 2022 17:31:38 -0500	[thread overview]
Message-ID: <CAHC9VhRn7MGRqww2M28i8eD_EK3-OVtyqiMeT72Y7N_=f0MM9w@mail.gmail.com> (raw)
In-Reply-To: <20220209221352.GG1708086@madcap2.tricolour.ca>

On Wed, Feb 9, 2022 at 5:14 PM Richard Guy Briggs <rgb@redhat.com> wrote:
>
> On 2022-02-09 16:18, Paul Moore wrote:
> > On Wed, Feb 9, 2022 at 10:57 AM Paul Moore <paul@paul-moore.com> wrote:
> > > On Tue, Feb 8, 2022 at 10:44 PM Jeff Mahoney <jeffm@suse.com> wrote:
> > > >
> > > > Hi Richard -
> > > >
> > > > On 5/19/21 16:00, Richard Guy Briggs wrote:
> > > > > The openat2(2) syscall was added in kernel v5.6 with commit fddb5d430ad9
> > > > > ("open: introduce openat2(2) syscall")
> > > > >
> > > > > Add the openat2(2) syscall to the audit syscall classifier.
> > > > >
> > > > > Link: https://github.com/linux-audit/audit-kernel/issues/67
> > > > > Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
> > > > > Link: https://lore.kernel.org/r/f5f1a4d8699613f8c02ce762807228c841c2e26f.1621363275.git.rgb@redhat.com
> > > > > ---
> > > >
> > > > [...]
> > > >
> > > > > diff --git a/kernel/auditsc.c b/kernel/auditsc.c
> > > > > index d775ea16505b..3f59ab209dfd 100644
> > > > > --- a/kernel/auditsc.c
> > > > > +++ b/kernel/auditsc.c
> > > > > @@ -76,6 +76,7 @@
> > > > >  #include <linux/fsnotify_backend.h>
> > > > >  #include <uapi/linux/limits.h>
> > > > >  #include <uapi/linux/netfilter/nf_tables.h>
> > > > > +#include <uapi/linux/openat2.h>
> > > > >
> > > > >  #include "audit.h"
> > > > >
> > > > > @@ -196,6 +197,8 @@ static int audit_match_perm(struct audit_context *ctx, int mask)
> > > > >               return ((mask & AUDIT_PERM_WRITE) && ctx->argv[0] == SYS_BIND);
> > > > >       case AUDITSC_EXECVE:
> > > > >               return mask & AUDIT_PERM_EXEC;
> > > > > +     case AUDITSC_OPENAT2:
> > > > > +             return mask & ACC_MODE((u32)((struct open_how *)ctx->argv[2])->flags);
> > > > >       default:
> > > > >               return 0;
> > > > >       }
> > > >
> > > > ctx->argv[2] holds a userspace pointer and can't be dereferenced like this.
> > > >
> > > > I'm getting oopses, like so:
> > > > BUG: unable to handle page fault for address: 00007fff961bbe70
> > >
> > > Thanks Jeff.
> > >
> > > Yes, this is obviously the wrong thing to being doing; I remember
> > > checking to make sure we placed the audit_openat2_how() hook after the
> > > open_how was copied from userspace, but I missed the argv dereference
> > > in the syscall exit path when reviewing the code.
> > >
> > > Richard, as we are already copying the open_how info into
> > > audit_context::openat2 safely, the obvious fix is to convert
> > > audit_match_perm() to use the previously copied value instead of argv.
> > > If you can't submit a patch for this today please let me know.
> >
> > I haven't heard anything from Richard so I put together a patch which
> > should fix the problem (link below).  It's currently untested, but
> > I've got a kernel building now with the patch ...
>
> Well, the day wasn't over yet...  I've compiled and tested it.

Yes, I tested my patch too and everything looks good on my end.

For future reference, while I didn't explicitly ask you to acknowledge
this thread and that you were working on a patch (I probably should
have), it would have been nice if you could have sent a quick note to
the list.

-- 
paul-moore.com

--
Linux-audit mailing list
Linux-audit@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-audit


  reply	other threads:[~2022-02-09 22:32 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-19 20:00 [PATCH v4 0/3] audit: add support for openat2 Richard Guy Briggs
2021-05-19 20:00 ` Richard Guy Briggs
2021-05-19 20:00 ` Richard Guy Briggs
2021-05-19 20:00 ` Richard Guy Briggs
2021-05-19 20:00 ` [PATCH v4 1/3] audit: replace magic audit syscall class numbers with macros Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-20  7:50   ` Christian Brauner
2021-05-20  7:50     ` Christian Brauner
2021-05-20  7:50     ` Christian Brauner
2021-05-20  7:50     ` Christian Brauner
2021-08-05 22:01   ` Paul Moore
2021-08-05 22:01     ` Paul Moore
2021-08-05 22:01     ` Paul Moore
2021-08-05 22:01     ` Paul Moore
2021-09-30 20:38     ` Paul Moore
2021-10-01 19:53       ` Richard Guy Briggs
2021-10-01 20:34         ` Paul Moore
2021-10-04 15:34           ` Paul Moore
2021-05-19 20:00 ` [PATCH v4 2/3] audit: add support for the openat2 syscall Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-20  7:58   ` Christian Brauner
2021-05-20  7:58     ` Christian Brauner
2021-05-20  7:58     ` Christian Brauner
2021-05-20  7:58     ` Christian Brauner
2021-05-24 23:04     ` Paul Moore
2021-05-24 23:04       ` Paul Moore
2021-05-24 23:04       ` Paul Moore
2021-05-24 23:04       ` Paul Moore
2022-02-09  3:44   ` Jeff Mahoney
2022-02-09  3:44     ` Jeff Mahoney
2022-02-09 15:57     ` Paul Moore
2022-02-09 15:57       ` Paul Moore
2022-02-09 21:18       ` Paul Moore
2022-02-09 21:18         ` Paul Moore
2022-02-09 22:13         ` Richard Guy Briggs
2022-02-09 22:13           ` Richard Guy Briggs
2022-02-09 22:31           ` Paul Moore [this message]
2022-02-09 22:31             ` Paul Moore
2022-02-09 21:40       ` Richard Guy Briggs
2022-02-09 21:40         ` Richard Guy Briggs
2022-02-09 22:29         ` Paul Moore
2022-02-09 22:29           ` Paul Moore
2021-05-19 20:00 ` [PATCH v4 3/3] audit: add OPENAT2 record to list how Richard Guy Briggs
2021-05-19 20:00   ` Richard Guy Briggs
2021-05-20  8:03   ` Christian Brauner
2021-05-20  8:03     ` Christian Brauner
2021-05-24 23:08     ` Paul Moore
2021-05-24 23:08       ` Paul Moore
2021-05-25 15:00       ` Richard Guy Briggs
2021-05-25 15:00         ` Richard Guy Briggs
2021-10-04 16:08   ` Paul Moore
2021-10-04 16:08     ` Paul Moore
2021-10-04 18:27     ` Richard Guy Briggs
2021-10-04 18:27       ` Richard Guy Briggs
2021-10-21 19:00       ` Steve Grubb
2021-10-21 19:44         ` Richard Guy Briggs

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='CAHC9VhRn7MGRqww2M28i8eD_EK3-OVtyqiMeT72Y7N_=f0MM9w@mail.gmail.com' \
    --to=paul@paul-moore.com \
    --cc=eparis@parisplace.org \
    --cc=eparis@redhat.com \
    --cc=jeffm@suse.com \
    --cc=linux-audit@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rgb@redhat.com \
    --cc=sgrubb@redhat.com \
    --cc=tonyj@suse.de \
    --cc=viro@zeniv.linux.org.uk \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.