首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第19期->最新漏洞
期刊号: 类型: 关键词:
Netscape 目录服务缓冲区溢出

日期:2001-02-19

受影响的系统:  
    Netscape Directory Server 4.1 (捆绑在Netscape Messaging Server中)
    Netscape Directory Server 4.12 (只能DoS)
       - Windows NT (可能还有其他平台)

描述:
--------------------------------------------------------------------------------


与Netscape Messaging Server 4.15SP3捆绑在一起的Netscape Directory Server存
在缓冲区溢出漏洞。目录服务用于存放信使服务的各种用户信息。溢出可能导致拒绝
服务攻击或者执行任意指令。目录服务4.12版存在类似问题,但是由于溢出点不同,
只能导致拒绝服务攻击。安装Netscape信使服务的过程中,要求安装目录服务,缺省
情况下安装目录服务4.1版,同时信使服务会激活一些使用目录服务的其他服务,比
如SMTPD。

远程用户连接SMTP服务,在"RCPT TO: "域输入大量双引号(",0x22),SMTPD本身无
事,它会将连接到Netscape目录服务做查询,最终libslapd.dll中的
escape_string_with_punctuation()函数被调用,这里将发生缓冲区溢出。

第一个可利用之处就象典型的缓冲区溢出那样,一个函数返回地址被覆盖,程序流程
转向攻击者的shellcode。第二个可利用之处,一个足够长的串最终导致堆栈溢出,
引发内存异常,在异常处理中会执行一条"call ecx"指令,而ecx来自被覆盖的堆栈
区域,在Windows平台上很容易利用第二种方式。

尽管是在SMTPD测试中发现这个漏洞的,其他使用了目录服务的产品很可能存在类似
问题。

溢出最终导致信使服务邮件队列被破坏,建议用户不要在重要服务器上测试这个漏洞。

<* 来源:Frank Swiderski (fes@atstake.com)
         http://www.atstake.com/research/advisories/2001/a030701-1.txt
*>




--------------------------------------------------------------------------------
建议:

如果你可以安装厂商提供的补丁,最好安装补丁程序。如果因为某些原因不能打补丁,
参看下面的介绍。阻止从外部访问内部的目录服务,并且只允许内部受信任主机访问
目录服务。架设应用网关,对用户输入做过滤。

受攻击后邮件队列混乱,可能需要手工删除引起异常的邮件消息,与iPlanet技术支
持联系,了解清理邮件队列的最佳办法。

如果你有合法渠道获得的源代码,可以自己研究一下,在源码级上修正这个问题。

下面是厂商对此问题的回应:

    NMS 4.15 (捆绑了目录服务4.11)
    iPlanet Messaging Server 5.0 (捆绑了目录服务4.12)

通过iPlanet技术支持渠道升级这些产品到目录服务4.13版。此外,建议将NMS 4.15
升级到NMS 4.15 SP4。

NMS 4.15 SP4限制了SMTP命令行上能够输入的字节长度,如果太长了(大于16KB),将
返回550 + text错误信息,并关闭连接。

NMS 5.0彻底修正了这些漏洞。

版权所有,未经许可,不得转载