流行邮件服务器被曝两漏洞,波及30万台主机

2017年11月23日,流行邮件服务器程序Exim相关的两个漏洞被提交给Exim Bugziliza,其中CVE-2017-16943为UAF(Use After Free)类型漏洞,可能导致远程代码执行,CVE-2017-16944可导致拒绝服务。11月25日相应的POC被放出,但是该POC有限制,需要在特殊情况下才能触发。12月11日,安全研究者发布了文章对漏洞进行了详细的技术分析,并证明利用CVE-2017-16943漏洞可实现远程代码执行。

360威胁情报中心已根据重现漏洞,漏洞相关的技术细节已经公开,互联网上受影响的主机数目较多。此漏洞极有可能被利用来执行大规模的攻击,控制关键的邮件服务器,构成严重的现实威胁。

360安全监测与响应中心将持续关注该事件进展,并第一时间为您更新该事件信息。

漏洞概要

漏洞描述

Exim是由剑桥大学Philip Hazel开发的邮件传输代理,负责邮件的路由,转发和投递。它可运行在绝大多数的类Unix系统上,包括Solaris、AIX、Linux、macOS等。相比其他MTA,Exim配置更灵活,支持String Expansion技术,能执行诸如条件判断,字符转换等功能。

近期Exim 被爆出两个漏洞:一个为UAF(Use After Free)类型漏洞(CVE-2017-16943),可能被利用来执行任意指令;另一个为命令处理逻辑漏洞(CVE-2017-16944),可能导致拒绝服务。当Exim版本为4.88和4.89并开放chunking(BDAT指令)选项时,攻击者可通过发送恶意构造的字串触发对应漏洞,从而导致服务器远程代码执行或拒绝服务。

本通告重点关注可能导致远程代码执行的CVE-2017-16943漏洞,攻击者可以利用此漏洞无需用户验证通过发送带有畸形参数的BDAT命令在服务器上执行任意指令,从而完全控制邮件服务器。

风险等级

360安全监测与响应中心风险评级为:高危

预警等级:蓝色预警(一般网络安全事件)

影响范围

漏洞影响Exim 4.88和4.89版本(需要开启chunking选项)。

目前评估潜在受影响主机数量超过300000台(4.88版本120000+台,4.89版本180000+台),整体影响面较大,综合分析威胁等级为高。

处置措施

360安全监测与响应中心建议用户:

1. 升级Exim到4.89.1及以上版本。

2. 如暂时无法升级服务器程序,作为临时解决方案,可在config里将chunking_advertise_hosts 选项留空,使漏洞暂时无法被利用。

产品解决方案

1.1 检测工具

360天眼产品检测方案

360网站云监测方案

360网站云监测漏洞扫描模块加入了相应规则,可以检测受该漏洞(CVE-2017-16943)所影响 Exim 。

2.1 防护工具

360天堤防火墙解决方案

技术分析

漏洞分析

CVE-2017-16943为一个UAF(Use After Free)类型漏洞,漏洞主要发生在函数receive_msg的以下代码中,这三个函数用于Exim中相关的堆操作:

1. store_extend用于堆扩展

2. store_get用于分配堆

3. store_release用于释放堆

当用于解析head的buffer长度不够时,通过store_extend扩展next->text,如果此时store_extend扩展失败,则通过store_get直接分配一段堆内存,并通过store_releases释放掉之前的next->text内存。

由于Exim中堆管理函数的问题,通过BDAT构造特殊的字符串,将导致store_get分配的内存为next->text指向的内存的子块,而在后续的函数store_releases中next->text指向的内存被释放,程序之后运行时复用将导致UAF。

使用Meh提供的POC,运行之后可以看到对应处理的子进程已经崩溃,但是并不影响主进程,从对应的分析文章来看,作者已实现可用的远程命令执行。

漏洞利用的细节详见参考资料节中360CERT的分析。

CVE-2017-16944为一个可导致拒绝的漏洞,如下所示通过‘.’标记email的结束,代码中对BDAT命令的校验不标准,以至于receive_getc不会被重置,从而导致在后续函数bdat_getc()中的死循环,最终导致拒绝服务。

参考文档

https://devco.re/blog/2017/12/11/Exim-RCE-advisory-CVE-2017-16943-en/

https://xorl.wordpress.com/2017/11/26/cve-2017-16943-exim-use-after-free/

https://xorl.wordpress.com/2017/12/02/cve-2017-16944-exim-bdat-infinite-loop-remote-dos/

https://bugs.exim.org/show_bug.cgi?id=2199

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171216A07S1A00?refer=cp_1026

扫码关注云+社区