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

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

最近,在初夏,由于 CVE-4.92-2019 漏洞,人们广泛呼吁将 Exim 更新到版本 10149(紧急将 Exim 更新到 4.92 - 存在活跃感染 / Sudo Null IT 新闻)。 最近,Sustes 恶意软件决定利用此漏洞。

现在所有紧急更新的人又可以“欢欣鼓舞”了:21 年 2019 月 XNUMX 日,研究人员 Zerons 发现了一个严重漏洞 使用 TLS 时的 Exim 邮件传输代理 (MTA) 对于版本来自 4.80到4.92.1 包容性,允许远程 以特权执行代码 (CVE-2019-15846).

漏洞

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

据开发人员 Heiko Schlittermann 介绍,Exim 中的配置文件默认不使用 TLS,但许多发行版在安装过程中创建必要的证书并启用安全连接。 较新版本的 Exim 也安装了该选项 tls_advertise_hosts=* 并生成必要的证书。

取决于配置。 大多数发行版默认启用它,但 Exim 需要证书+密钥才能充当 TLS 服务器。 发行版可能会在安装过程中创建一个证书。 较新的 Exim 具有默认为“*”的 tls_advertise_hosts 选项,并创建一个自签名证书(如果未提供)。

该漏洞本身在于对 SNI(服务器名称指示,一项于 2003 年在 RFC 3546 中引入的技术,用于客户端请求正确的域名证书的技术)的错误处理, TLS SNI 标准的分发 / WEBO 集团博客 / Sudo Null IT 新闻)在 TLS 握手期间。 攻击者只需要发送一个以反斜杠(“”)和空字符(“”)结尾的SNI。

Qualys 的研究人员在 string_printing(tls_in.sni) 函数中发现了一个错误,其中涉及“”的错误转义。 结果,反斜杠被未转义地写入打印假脱机头文件中。 然后 spool_read_header() 函数以特权权限读取该文件,这会导致堆溢出。

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

Qualys 的更详细研究可以参见 这里.

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

在 TLS 中使用 SNI

潜在易受攻击的公共服务器数量

根据大型托管提供商的统计 亿软公司 截至1月4.92日,在租用服务器上,超过70%的主机使用XNUMX版本。

版本
服务器数量
百分之

4.92.1
6471
1.28%

4.92
376436
74.22%

4.91
58179
11.47%

4.9
5732
1.13%

4.89
10700
2.11%

4.87
14177
2.80%

4.84
9937
1.96%

其他版本
25568
5.04%

E-Soft Inc 公司统计

如果您使用搜索引擎 初段,然后从服务器数据库中的 5,250,000 个中得出:

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

因此,公开已知且可访问的 Exim 潜在易受攻击的服务器数量约为 1.5万元.

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

在 Shodan 中搜索 Exim 服务器

保护

  • 最简单但不推荐的选项是不使用 TLS,这将导致电子邮件以明文形式转发。
  • 为了避免该漏洞被利用,最好更新到该版本 Exim 互联网邮件程序 4.92.2.
  • 如果无法更新或安装修补版本,您可以在 Exim 配置中为该选项设置 ACL acl_smtp_邮件 遵循以下规则:
    # 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}}}}

来源: habr.com

添加评论