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