Sendmail头处理远程溢出漏洞(CVE-2002-1337)
大多数组织在他们网络内部的各个位置有各种邮件传输代理(MTA),其中至少有一个直接连接于互联网。Sendmail是其中最流行的MTA,据统计通过 Sendmail处理的Internet邮件流量占了总数的50到75。许多UNIX和Linux工作站默认运行Sendmail。
Sendmail <8.12.8版本在处理和评估通过SMTP会话收集的邮件头部时存在一个远程溢出漏洞。当邮件头部包含地址或者地址列表(例如"From", "To", "CC")时,Sendmail会试图检查是否所提供的地址或地址列表是有效的。Sendmail使用crackaddr()函数来完成这一工作,这个函数位于Sendmail源码树中的headers.c文件中。
Sendmail使用了一个静态缓冲区来存储所处理的数据。Sendmail会检测这个缓冲区,如果发现已经满了则停止向里面添加数据。Sendmail 通过几个安全检查来保证字符被正确解释。然而其中一个安全检查存在安全缺陷,导致远程攻击者通过提交特制的地址域来造成一个缓冲区溢出。利用这个漏洞,攻击者可以获得Sendmail运行用户的权限,在大多数的Unix或者Linux系统上Sendmail都是以root用户身份运行。
由于溢出发生在静态缓冲区中,不可执行堆栈保护对此漏洞没有作用。由于攻击代码可包含在看起来正常的邮件中,可以轻易地在不被发现的情况下穿透许多常见的包过滤设备或防火墙。 对未打补丁sendmail系统的成功利用在系统日志中不会留下任何消息。但是,在打过补丁的系统中,利用该漏洞的尝试会留下以下的日志消息:
Dropped invalid comments from header address
此漏洞影响Sendmail商业版以及开放源码的版本,另据报告此漏洞已经在实验室环境中被成功利用。
解决方法
以下是各Linux/Unix发行版系统针对此漏洞发布的安全公告,可以参考对应系统的安全公告修复该漏洞:
Debian
----------------
DSA-257: DSA-257-1 sendmail -- remote exploit
链接: https://www.debian.org/security/2003/dsa-257
厂商补丁:
Sendmail, Inc
---------
目前 Sendmail, Inc 已经发布 sendmail 最新版本, 请到厂商的官方页面下载最新版本:
链接:http://www.sendmail.com/sm/open_source/download/

浙公网安备 33010602011771号