Date: Tue, 5 Nov 2002 15:25:36 +0100 From: Markus Friedl <markus@openbsd.org> To: Dag-Erling Smorgrav <des@ofug.org> Cc: Alexander Leidinger <Alexander@Leidinger.net>, current@freebsd.org, openssh@openbsd.org Subject: Re: ssh-agent broken with pam_ssh for xdm (+ fix for ssh-agent.c) Message-ID: <20021105142536.GA8326@folly> In-Reply-To: <xzpd6pkxgip.fsf@flood.ping.uio.no> References: <20021103204902.3c6b3705.Alexander@Leidinger.net> <20021104092329.GA1677@folly> <xzpd6pkxgip.fsf@flood.ping.uio.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 05, 2002 at 03:01:02PM +0100, Dag-Erling Smorgrav wrote:
> Markus Friedl <markus@openbsd.org> writes:
> > yes, geteuid() could work, too, but why is ssh-agent running
> > with a privileged user id? shouldn't both the real and
> > effective user id be the uid of the user?
>
> ssh-agent is started by pam_ssh which is run under xdm's uid (i.e. 0).
> It switches to the user's egid and euid before starting ssh-agent.
but shouldn't it do something like
seteuid(getuid());
setuid(getuid());
executing ssh-agent?
> FreeBSD's execve() does not change the real user id (I don't think
> POSIX allows it) so ssh-agent has real user-id 0. It should do
> setuid(geteuid()) early on to guard against this. Alternatively,
> pam_ssh could use a home-grown privilege-dropping popen() instead of
> libc's popen() to start ssh-agent.
>
> DES
> --
> Dag-Erling Smorgrav - des@ofug.org
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021105142536.GA8326>
