Re: [PATCH 2/2] AppArmor: Fix lsm_get_self_attr()

From: Paul Moore
Date: Tue Feb 27 2024 - 17:09:53 EST


On Tue, Feb 27, 2024 at 11:01 AM Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> On Mon, Feb 26, 2024 at 2:59 PM Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> > On Fri, Feb 23, 2024 at 4:07 PM Paul Moore <paul@xxxxxxxxxxxxxx> wrote:
> > > On Fri, Feb 23, 2024 at 2:06 PM Mickaël Salaün <mic@xxxxxxxxxxx> wrote:
> > > >
> > > > aa_getprocattr() may not initialize the value's pointer in some case.
> > > > As for proc_pid_attr_read(), initialize this pointer to NULL in
> > > > apparmor_getselfattr() to avoid an UAF in the kfree() call.
> > > >
> > > > Cc: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>
> > > > Cc: John Johansen <john.johansen@xxxxxxxxxxxxx>
> > > > Cc: Paul Moore <paul@xxxxxxxxxxxxxx>
> > > > Cc: stable@xxxxxxxxxxxxxxx
> > > > Fixes: 223981db9baf ("AppArmor: Add selfattr hooks")
> > > > Signed-off-by: Mickaël Salaün <mic@xxxxxxxxxxx>
> > > > ---
> > > > security/apparmor/lsm.c | 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > If you like John, I can send this up to Linus with the related SELinux
> > > fix, I would just need an ACK from you.
> >
> > Reviewed-by: Paul Moore <paul@xxxxxxxxxxxxxx>
> >
> > This patch looks good to me, and while we've still got at least two
> > (maybe three?) more weeks before v6.8 is tagged, I think it would be
> > good to get this up to Linus ASAP. I'll hold off for another day, but
> > if we don't see any comment from John I'll go ahead and merge this and
> > send it up to Linus with the SELinux fix; I'm sure John wouldn't be
> > happy if v6.8 went out the door without this fix.
>
> I just merged this into lsm/stable-6.8 and once the automated
> build/test has done it's thing and come back clean I'll send this,
> along with the associated SELinux fix, up to Linus. Thanks all.

In off-list discussions with Mickaël today it was noted that this
patch also needs a fixup to the commit description so I've replaced it
with the following:

"In apparmor_getselfattr() when an invalid AppArmor
attribute is requested, or a value hasn't been explicitly
set for the requested attribute, the label passed to
aa_put_label() is not properly initialized which can cause
problems when the pointer value is non-NULL and AppArmor
attempts to drop a reference on the bogus label object."

I've updated the commit in lsm/stable-6.8 and I'll be sending it to
Linus shortly.

> John, if this commit is problematic please let me know and I'll send a
> fix or a revert.

--
paul-moore.com