Re: [PATCH] fs/vfs/security: pass last path component to LSM oninode creation

From: Serge Hallyn
Date: Thu Dec 09 2010 - 11:06:29 EST


Quoting John Stoffel (john@xxxxxxxxxxx):
> >>>>> "Eric" == Eric Paris <eparis@xxxxxxxxxx> writes:
>
> Eric> SELinux would like to implement a new labeling behavior of newly
> Eric> created inodes. We currently label new inodes based on the
> Eric> parent and the creating process. This new behavior would also
> Eric> take into account the name of the new object when deciding the
> Eric> new label. This is not the (supposed) full path, just the last
> Eric> component of the path.
>
> Eric> This is very useful because creating /etc/shadow is different
> Eric> than creating /etc/passwd but the kernel hooks are unable to
> Eric> differentiate these operations. We currently require that
> Eric> userspace realize it is doing some difficult operation like that
> Eric> and than userspace jumps through SELinux hoops to get things set
> Eric> up correctly. This patch does not implement new behavior, that
> Eric> is obviously contained in a seperate SELinux patch, but it does
> Eric> pass the needed name down to the correct LSM hook. If no such
> Eric> name exists it is fine to pass NULL.
>
> I've looked this patch over, and maybe I'm missing something, but how
> does knowing the name of the file really tell you anything, esp when
> you only get the filename, not the path? What threat are you
> addressing with this change?

Like you, I keep thinking back to this patch and going back and forth.
But to answer your question: in some cases, the name of the file
(plus the context of the directory in which it is created) can tell
you what assumptions userspace will make about it. And userspace most
definately is a part of the TCB, i.e. /bin/passwd and /bin/login.

-serge
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/