Bug 656415

Summary: pam_ssh_agent_auth does not properly restore euid if connect to the ssh-agent socket fails
Product: Red Hat Enterprise Linux 6 Reporter: Tomas Mraz <tmraz>
Component: opensshAssignee: Jan F. Chadima <jchadima>
Status: CLOSED ERRATA QA Contact: BaseOS QE Security Team <qe-baseos-security>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.0CC: mvadkert, sgrubb
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openssh-5.3p1-33.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-19 13:30:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Proposed patch
none
Better patch adds also missing close(sock) if seteuid fails none

Description Tomas Mraz 2010-11-23 17:00:27 UTC
Created attachment 462391 [details]
Proposed patch

pam_ssh_agent_auth sets euid temporarily to the user during the connect to the ssh-agent socket to avoid possible race conditions. However if the connect fails for example if the ssh-agent is not running it will fail to restore the original euid. This causes following modules in the PAM stack to fail.

Testing instructions:

Add 
auth sufficient pam_ssh_agent_auth.so file=~/.ssh/authorized_keys
to the /etc/pam.d/su.

Run 
'ssh-agent -a .ssh-agent-socket'
as user. Then kill the ssh-agent process. Verify that the stale unix socket ~/.ssh-agent-socket is still present. Try to su to root - it asks for password but it fails even if you supply correct root password.

Comment 1 Tomas Mraz 2010-11-23 17:04:42 UTC
Created attachment 462392 [details]
Better patch adds also missing close(sock) if seteuid fails

Comment 5 errata-xmlrpc 2011-05-19 13:30:46 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2011-0598.html