Exim远程代码执行漏洞安全通告

发布时间 2019-09-09

漏洞编号和级别


CVE编号:CVE-2019-15846,危险级别:严重,CVSS分值:9.8


影响版本


受影响的版本


Exim < 4.92.2版本


漏洞概述


Exim是基于GPL协议的开放源代码软件,由英国剑桥大学的Philip Hazel开发。Exim是一个运行于Unix系统中的开源消息传送代理(MTA),它主要负责邮件的路由、转发和投递。Exim可运行于绝大多数的类UNIX系统上,包括了Solaris、AIX、Linux等。


受影响的Exim版本中的SMTP传递过程具有缓冲区溢出。在默认的运行时配置中,可以在TLS协商期间利用精心设计的ServerName Indication(SNI)数据进行利用。


SNI是一种TLS协议组件,旨在使服务器能够提供不同的TLS证书,以验证和保护与同一IP地址后面的网站的连接。


当Exim支持TLS时,攻击者发送以'\0'结束的SNI,此时string_unprinting函数调用string_interpret_escape函数处理转义序列,由于string_interpret_escape函数中没有处理'\0'的情况,造成了越界读取。该错误允许本地或未经身份验证的远程攻击者在接受TLS连接的服务器上执行具有root权限的程序。


该漏洞影响Exim 4.92.2以下版本,数百万台 Exim 服务器易受该漏洞影响。使用Shodan搜索引擎为互联网连接设备生成的报告估计服务器数量约为5,250,000,超过3,500,000使用Exim 4.92和超过74,000运行4.92.1。Exim使用的版本状况如图所示:





其中Exim使用老版本SSL协议数量比较多,而且有一部分的SSL证书已经过期。如图所示:







漏洞验证


暂无POC/EXP。


修复建议


建议用户立即升级到4.92.2版本,下载链接如下:

https://github.com/Exim/exim/releases/tag/exim-4.92.2


缓解措施:

如不能立即升级,建议通过exim的acl_smtp_mail配置如下规则:





参考链接


https://www.bleepingcomputer.com/news/security/critical-exim-tls-flaw-lets-attackers-remotely-execute-commands-as-root/