首页 -> 安全研究

安全研究

安全漏洞
SpamAssassin BSMTP模式远程缓冲区溢出漏洞

发布日期:2003-01-24
更新日期:2003-01-31

受影响系统:
SpamAssassin SpamAssassin 2.43
SpamAssassin SpamAssassin 2.42
SpamAssassin SpamAssassin 2.41
SpamAssassin SpamAssassin 2.40
不受影响系统:
SpamAssassin SpamAssassin 2.50
描述:
BUGTRAQ  ID: 6679

SpamAssassin是一款用于过滤垃圾邮件的解决方案。

SpamAssassin在使用BSMTP模式运行时由于缺少充分的边界检查,远程攻击者可以利用这个漏洞对服务程序进行缓冲区溢出攻击,可能以SpamAssassin进程权限在系统上执行任意指令。

SpamAssassin可以以BSMTP模式(-B选项)运行,但在这个模式下处理邮件头时,SpamAssassin没有正确检查行开始处的'.'字符,由于单字节检查错误,允许攻击者构建恶意邮件发送给使用SpamAssassin的系统,可覆盖堆栈帧地址,精心构建邮件头数据可能以SpamAssassin进程权限在系统上执行任意指令。

<*来源:Timo Sirainen (tss@iki.fi
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=104342896818777&w=2
*>

建议:
临时解决方法:

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

* Timo Sirainen <tss@iki.fi>提供如下第三方补丁:

diff -ru spamassassin-2.43-old/spamd/libspamc.c spamassassin-2.43/spamd/libspamc.c
--- spamassassin-2.43-old/spamd/libspamc.c    2002-10-15 18:22:49.000000000 +0300
+++ spamassassin-2.43/spamd/libspamc.c    2002-12-27 20:19:36.000000000 +0200
@@ -309,7 +309,7 @@
       case MESSAGE_BSMTP:
         total=full_write(fd, m->pre, m->pre_len);
         for(i=0; i<m->out_len; ){
-            for(j=0; i<m->out_len && j<sizeof(buffer)/sizeof(*buffer)-1; ){
+            for(j=0; i<m->out_len && j<sizeof(buffer)/sizeof(*buffer)-2; ){
                 if(i+1<m->out_len && m->out[i]=='\n' && m->out[i+1]=='.'){
                     buffer[j++]=m->out[i++];
                     buffer[j++]=m->out[i++];

厂商补丁:

SpamAssassin
------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://spamassassin.org/

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