Re: SELinux and the Desktop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2004-10-14 at 14:51, Colin Walters wrote:
> Well, this is only a threat in the case where the caller can do an
> unlink in the directory that the script is in, correct?

No, because the kernel just passes through the path as provided; it
doesn't canonicalize it.  So you can use a symlink or hard link in your
home directory to the real script, then rewrite that path to refer to
something else.

> Right now though if you tried to do that a malicious attacker
> could set many environment variables like PATH or IFS which shell
> scripts would pick up.  Cleaning the environment would close that hole.

SELinux does enable glibc secure mode upon a domain transition, and
glibc does sanitize certain environment variables in that case.  So you
could possibly add further variables to the list used by glibc to help
protect scripts.  But that won't resolve the race.

I think that Solaris addressed the race by having the kernel open the
script file and provide the descriptor to the interpreter, much as Linux
already does for the ELF interpreter.  Problem with that solution is
that userspace expects a path, not a fd, so I think Solaris passes
/dev/fd/n as the path.  That would seem to almost work, except that
/dev/fd/n -> /proc/self/fd/n on Linux becomes inaccessible upon
setuid/setgid execution to avoid an information leak.  

-- 
Stephen Smalley <sds@xxxxxxxxxxxxxx>
National Security Agency


[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux