All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ondrej Mosnacek <omosnace@redhat.com>
To: Richard Guy Briggs <rgb@redhat.com>
Cc: Linux-Audit Mailing List <linux-audit@redhat.com>
Subject: Re: Question about audit_filter_rules
Date: Wed, 16 May 2018 14:27:57 +0200	[thread overview]
Message-ID: <CAFqZXNtaKPNr=3SnX5W0M0qxY6GbLbj_N-x06z5O-kk+0d7hCw@mail.gmail.com> (raw)
In-Reply-To: <20180516114635.msvy2xwvqokyad5j@madcap2.tricolour.ca>

2018-05-16 13:46 GMT+02:00 Richard Guy Briggs <rgb@redhat.com>:
> On 2018-05-16 10:43, Ondrej Mosnacek wrote:
>> I found more inconsistencies:
>> [...]
>> case AUDIT_GID:
>>         result = audit_gid_comparator(cred->gid, f->op, f->gid);
>>         if (f->op == Audit_equal) {
>>                if (!result)
>>                        result = in_group_p(f->gid);
>>         } else if (f->op == Audit_not_equal) {
>>                 if (result)
>>                         result = !in_group_p(f->gid);
>>         }
>>         break;
>> case AUDIT_EGID:
>>         result = audit_gid_comparator(cred->egid, f->op, f->gid);
>>         if (f->op == Audit_equal) {
>>                 if (!result)
>>                         result = in_egroup_p(f->gid);
>>         } else if (f->op == Audit_not_equal) {
>>                if (result)
>>                         result = !in_egroup_p(f->gid);
>>         }
>>         break;
>> [...]
>>
>> The in_[e]group_p functions match the current task's group list.
>> Unfortunately there don't seem to be functions in the kernel that
>> would do the same for arbitrary struct cred pointers, we may need to
>> add these to fix this.
>>
>> See the definition of in_group_p for reference:
>> https://elixir.bootlin.com/linux/latest/source/kernel/groups.c#L219
>
> Interesting.  Nice catch.  I'll need to look at these and the previous
> one again.  File github audit kernel issues...

Done, created at:
https://github.com/linux-audit/audit-kernel/issues/82

>> 2018-05-16 8:57 GMT+02:00 Ondrej Mosnacek <omosnace@redhat.com>:
>> > Hi,
>> >
>> > I noticed this suspicious line in the definition of the
>> > audit_filter_rules function in auditsc.c:
>> >
>> > [...]
>> > case AUDIT_SESSIONID:
>> >         sessionid = audit_get_sessionid(current);     // <--- HERE
>> >         result = audit_comparator(sessionid, f->op, f->val);
>> >         break;
>> > [...]
>> >
>> > Here, the sessionid is retrieved from the current task pointer, while
>> > all the other code in this function compares against the tsk task
>> > pointer. It seems that it is not always guaranteed that tsk ==
>> > current, so my question is: Is it intentional for some reason or
>> > should it be tsk instead of current?
>> >
>> > Ondrej Mosnacek <omosnace at redhat dot com>
>>
>> Ondrej Mosnacek <omosnace at redhat dot com>
>
> - RGB
>
> --
> Richard Guy Briggs <rgb@redhat.com>
> Sr. S/W Engineer, Kernel Security, Base Operating Systems
> Remote, Ottawa, Red Hat Canada
> IRC: rgb, SunRaycer
> Voice: +1.647.777.2635, Internal: (81) 32635



-- 
Ondrej Mosnacek <omosnace at redhat dot com>
Associate Software Engineer, Security Technologies
Red Hat, Inc.

  reply	other threads:[~2018-05-16 12:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-16  6:57 Question about audit_filter_rules Ondrej Mosnacek
2018-05-16  8:43 ` Ondrej Mosnacek
2018-05-16 11:46   ` Richard Guy Briggs
2018-05-16 12:27     ` Ondrej Mosnacek [this message]
2018-05-16 11:37 ` 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='CAFqZXNtaKPNr=3SnX5W0M0qxY6GbLbj_N-x06z5O-kk+0d7hCw@mail.gmail.com' \
    --to=omosnace@redhat.com \
    --cc=linux-audit@redhat.com \
    --cc=rgb@redhat.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 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.