已修补的Exim-再次修补。 在一个请求中,Exim 4.92中的全新远程命令执行


最近,在夏季初,由于漏洞CVE-2019-10149( 紧急将Exim更新为4.92- 主动感染/ Habr ),人们强烈要求将Exim 更新到4.92版 。 几天前,事实证明,恶意软件Sustes决定利用此漏洞。


现在所有紧急更新的代码都可以再次感到``高兴'':2019年7月21日,Zerons研究人员在将TLS用于4.80至4.92.1(版本发现了Exim Mail Transfer代理(MTA)中的一个严重漏洞,从而允许使用特权特权CVE)远程执行代码 -2019-15846 )。


脆弱性


建立安全的TLS连接时同时使用GnuTLS和OpenSSL库时,存在此漏洞。


根据开发人员Heiko Schlittermann的说法,Exim中的配置文件默认情况下不使用TLS,但是,许多发行版会在安装过程中创建必要的证书,并包括安全连接。 较新版本的Exim还设置了tls_advertise_hosts = *选项并生成必要的证书。


取决于配置。 大多数发行版默认情况下都启用它,但是Exim需要证书+密钥才能用作TLS服务器。 发行版可能会在发行过程中创建证书。 较新的Exims的tls_advertise_hosts选项默认为“ *”,如果未提供,则创建一个自签名证书。

该漏洞本身包含错误的SNI处理(服务器名称指示,这是RFC 3546中于2003年引入的技术,用于在TLS握手期间请求客户端提供有效的域名证书, TLS SNI标准的分发/ WEBO集团公司的博客/ Habr )。 攻击者发送以反斜杠(“ \”)和空字符(“ \ 0”)结尾的SNI就足够了。


Qualys研究人员在string_printing(tls_in.sni)函数中发现了一个错误,即错误的“ \”转义。 结果,反斜杠以未转义的形式写入打印假脱机头文件。 此外,spool_read_header()函数会读取具有特权权限的文件,这会导致堆溢出。


值得注意的是,目前,Exim开发人员通过在易受攻击的远程服务器上执行命令创建了PoC漏洞,但该漏洞尚未公开。 由于该错误的易操作性,这只是时间问题,而且时间很短。


这里可以找到有关Qualys的更详细的研究。


在TLS中使用SNI


在TLS中使用SNI


潜在脆弱的公共服务器数量


根据大型托管服务提供商E-Soft Inc的统计,截至9月1日,租赁服务器上70%以上的主机使用4.92版。


版本号服务器数量百分比
4.92.164711.28%
4.9237643674.22%
4.915817911.47%
4.957321.13%
4.89107002.11%
4.87141772.80%
4.8499371.96%
其他版本255685.04%

E-Soft Inc公司统计


如果您使用搜索引擎Shodan ,则从服务器数据库中的5,250,000开始:


  • 使用Exim 4.92约3,500,000(使用SSL / TLS约1,380,000);
  • 超过74,000个用户使用4.92.1(使用SSL / TLS的用户大约为25,000)。

因此,大约有150万个 Exim潜在易受攻击的公开已知服务器。


在Shodan中查找Exim服务器


在Shodan中查找Exim服务器


防护等级


  • 最简单但不推荐的选项是不使用TLS,这将导致以明文形式转发电子邮件。
  • 为避免利用此漏洞,最好升级到Exim Internet Mailer 4.92.2
  • 如果无法升级或安装修补程序版本,则可以使用以下规则在Exim配置中为acl_smtp_mail选项设置ACL:

    # to be prepended to your mail acl (the ACL referenced # by the acl_smtp_mail main config option) deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}} deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}} 

Source: https://habr.com/ru/post/zh-CN467089/


All Articles