OpenSSH UseLogin 指示操作可导致权利提升发布时间:2001-12-05 更新时间:2001-12-05 严重程度:高 威胁程度:远程管理员权限 错误类型:环境错误 利用方式:服务器模式 受影响系统 FreeBSD 4.3-RELEASE, 4.4-RELEASE详细描述 OpenSSH是SSH1和SSH2安全SHELL协议的实现,可用来安全加密的网络访问。 OpenSSH存在一个特征允许用户安排环境变量设置用哪种KEY进行认证,这些 环境变量在用户home目录下的`authorized_keys' (SSHv1) 或者 `authorized_keys2' (SSHv2) 文件中保存。这正常情况下是安全的,如这些环境变量只会传递给 用户的SHELL,由用户的权利来调用。 但是,当OpenSSH服务程序'sshd'如果配置使用系统登陆程序(在sshd_config文件 中的'UseLogin yes'来指示),这个环境变量就会传递给login,而这个是由超级 用户权利调用的,因为部分环境变量如LD_LIBRARY_PATH 和 LD_PRELOAD 也可以 使用上面描述的方法设置,这就可以导致用户安排login来执行任意代码。 所以FreeBSD 4.x存在此漏洞,不过OpenSSH一般默认配置没有使用系统登陆程序。 测试代码 尚无 解决方案 临时方法: 1)配置sshd不使用系统login程序,编辑配置文件,把'UseLogin'改为'UseLogin no'. 2)不激活public key认证,编辑配置文件改变任何`RSAAuthentication',`DSAAuthentication', 或者 `PubKeyAuthentication' 为`RSAAuthentication no', `DSAAuthentication no', 和`PubKeyAuthentication no' 服务配置文件一般存在于`/etc/ssh/sshd_config'或者`/usr/local/etc/sshd_config'. 修改配置文件后,重新启动SSHD: # kill -HUP `cat /var/run/sshd.pid` 解决方案 1)升级受影响系统到4.3-RELEASEp21, 4.4-RELEASEp1,或者4.4-STABLE到修正 日期之后。 2)下载SSHD补丁程序: # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:63/sshd.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:63/sshd.patch.asc 相关信息 参考:http://www.securityfocus.com/advisories/3706 |