Kerberos 5 su 命令使用getlogin认证时存在漏洞发布时间:2002-01-22 更新时间:2002-01-22 严重程度:高 威胁程度:本地管理员权限 错误类型:设计错误 利用方式:服务器模式 受影响系统 FreeBSD 4.4-RELEASE详细描述 getlogin和setlogin系统调用用来管理关联login进程的用户名,k5su是kerberos 5 su程序,类似su,它允许未授权用户转换用户获得更高权利。 setlogin系统调用由超级用户限制使用,用来关联一login进程相关的用户名。getlogin 系统调用被用来获得用户名,setlogin系统调用经常被login和sshd使用。 包含在FreeBSD4.5-RELEASE版本k5su命令和包含在heimdal-0.4e_2包之前版本的 su命令使用getlogin系统调用为了检测是否当前登陆用户是不是'root'.在某些 环境下,可能时非特权进程获得getlogin返回的登陆名如'root'. k5su命令会被安装在Kerberos 5支持的FREEBSD系统中,或者第三方程序Heimdal 被安装的情况下使用。 本漏洞最终导致一些由root启动的进程但已经放弃超级用户的进程,可以被调用 'k5su'而重新获得超级用户权利。 测试代码 尚无 解决方案 临时方法: # chmod u-s /usr/bin/k5su # chmod u-s /usr/local/bin/su 或者下载如下补丁程序: # fetch ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-02:07/k5su.patch # fetch ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-02:07/k5su.patch.asc 执行下列命令进行安装: # cd /usr/src # patch < /path/to/k5su.patch # cd /usr/src/kerberos5/lib # env MAKE_KERBEROS5=yes make depend # env MAKE_KERBEROS5=yes make all install # cd /usr/src/kerberos5/usr.bin/k5su # env MAKE_KERBEROS5=yes make depend # env MAKE_KERBEROS5=yes make all install 如果使用了Heimdal,就下载如下升级程序: i386] ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/security/heimdal-0.4e_2.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/security/heimdal-0.4e_2.tgz 相关信息 参考:http://www.securityfocus.com/advisories/3809 |