Date: Mon, 24 Feb 1997 14:51:34 -0800 From: obrien@NUXI.com (David O'Brien) To: jehamby@lightside.com (Jake Hamby) Cc: hackers@freebsd.org, auditors@freebsd.org Subject: Re: disallow setuid root shells? Message-ID: <19970224145134.KZ55495@dragon.nuxi.com> In-Reply-To: <199702242038.MAA00577@lightside.com>; from Jake Hamby on Feb 24, 1997 12:38:23 -0800 References: <199702242038.MAA00577@lightside.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Jake Hamby writes:
>
> My sentiments exactly! I would think that if there was a valid reason
> for setuid root shells, then a commercial OS like Solaris would
> probably allow them (since paying customers often would rather have
> functionality than security!).
Solaris *DOES* allow them:
>From ``man sh'' on Solaris 2.5:
-p If the -p flag is present, the shell will not set the effective
user and group IDs to the real user and group IDs.
So you just need to envoke a suid0 shell by ``sh -p''. Solaris's ksh
does not have this restriction.
foo:/tmp> ll *sh
-r-sr-xr-x 1 root bin 159796 Oct 25 1995 csh*
-r-sr-xr-x 1 root bin 180856 Oct 25 1995 ksh*
-r-sr-xr-x 1 root root 87012 Oct 25 1995 sh*
foo:/tmp> id
uid=1765(obrien) gid=10(staff)
foo:/tmp> ./sh
$ id
uid=1765(obrien) gid=10(staff)
$ exit
foo:/tmp> ./sh -p
# id
uid=1765(obrien) gid=10(staff) euid=0(root)
# exit
foo:/tmp> ./ksh
# id
uid=1765(obrien) gid=10(staff) euid=0(root)
# exit
foo:/tmp> ./csh
csh: Permission denied
> While of course this will only protect against the lamest of system crackers,
> there really is no compelling reason NOT to do it,
You are changing from what is expected under Unix. Solaris did this with
requireing the ``-p'' option. Before people bothered to RTFM, many
thought they were no longer vulnerable to suid0 sh shells. And then
the truth was found....
--
-- David (obrien@NUXI.com -or- obrien@FreeBSD.org)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19970224145134.KZ55495>
