发信人: williamlong()
整理人: (2000-05-09 12:52:05), 站内信件
|
存在四个问题:
1. 可能在e-mail信息中插入LMTP命令。
在LMTP模式的mail.local检测输入的".\n"字符以确定邮件信息的结束。Sen dmail不允许这些字符串通过,但是如果采用fgets()函数,缓冲尺寸为2048字节 就允许用一字符串来模拟信息的结束。如
“(2047个字符).\n”其它信息将作为LMTP命令。这将允许发送信息到多个信箱( 包括私有信箱和已经关闭的信箱)而采用欺骗信息绕过sendmail的检测,从而没 有检测和日志记录等等。
2. 可能导致在sendmail和mail.local中发生死锁现象。
在问题1的情况下,mail.local将返回LMTP应答到Sendmail。由于sendmail不 能利用任何来自mail.local的信息输出,因此,回复也不会采用I/O的缓冲。如果 在文本中出现大量的LMTP命令,或者其它信息都是一些字符串的组合(在这种情况 下,mail.local将为每个字符串用错误信息都进行回复) ,在默认的缓冲填满的 时候,sendmail和mail.local将发生死锁现象。
3. 可能导致用户的mailbox出现问题。
在Solaris的mail.local中,sendmail版本8.10.0引入了对"Content-Length : "头的支持。该信息头包含了信息的大小尺寸,通过某些软件(如qpopper)可以计算出信 息边界大小。如果该信息头已经存在,那么将被删去。但是由于采用fgets()函数 来分析信息,可能通过添加"Content-Length: 99999999" 信息头来注释调真正的 "Content-Length: " 导致mailbox发生问题。如:
"(2047个字符)\n"
"Content-Length: 99999999\n"
位于信息头的末尾处。
4. 在用户的mailbox中,可能造成邮件信息头的改变。
如果信息为空,而且发送的信息头的最后部分字符串为 "(2047个字符)Cont ent-Length: \n"。
由于'\n'字符将被作为Content-Length销减去,而信息头将混入下一个邮箱中。
易受攻击的软件:
问题1和2: sendmail在版本8.10.0之前的所有平台(8.9.3测试通过)
问题3和4: 在Solaris下的sendmail版本8.10.0和8.10.1(8.10.1测试通过)
问题1和2可以通过升级为sendmail 8.10.0而解决。
-- ☆ 蓝色月光 ☆ http://williamlong.163.net
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.128.129.3]
|
|