CVE-2019-10149:Exim远程命令执行漏洞预警分析

  • CVE-2019-10149:Exim远程命令执行漏洞预警分析已关闭评论
  • 2,546 views
  • A+
所属分类:安全预警 漏洞解析

CVE-2019-10149:Exim远程命令执行漏洞预警分析

报告编号:B6-2019-061201

报告来源:360-CERT

报告作者:360-CERT

更新日期:2019-06-12

0x00 漏洞详情

日前,安全研究人员发现Exim邮件服务器存在一个远程命令执行漏洞,漏洞编号为CVE-2019-10149。该漏洞在默认配置下可被本地攻击者直接利用,通过低权限用户执行root权限命令,远程攻击者需要修改默认配置。为了在默认配置下远程利用该漏洞,远程攻击者需要与存在漏洞的服务器建立7天的连接(每隔几分钟发送1个字节)。

360CERT 判断此次漏洞影响面广,可造成本地提权并存在远程命令执行的风险,危害较为严重,建议广大用户及时更新。

本地利用

漏洞代码位于deliver_message()中:

CVE-2019-10149:Exim远程命令执行漏洞预警分析

代码中new->address保存的是邮件的收件人地址,如果将收件人地址写成${run{<command> <args>}}@localhost,则可以通过expand_string()以root权限执行任意命令。expand_string()的调用关系为:expand_string->child_open->execv

CVE-2019-10149:Exim远程命令执行漏洞预警分析

攻击效果如下:

CVE-2019-10149:Exim远程命令执行漏洞预警分析

远程利用

(1)默认配置

当目标Exim服务器使用默认配置时,攻击者需要与存在漏洞的服务器建立连接7天(每隔几分钟发送1个字节),利用条件较为苛刻,难度大。但由于Exim的代码非常复杂,可能存在其他能更快速利用的方法。

(2)非默认配置

当目标服务器使用以下配置时,攻击者可对其进行远程命令执行

a)管理员手动移除verify = recipient ACL配置;

b)管理员配置Exim可以识别收件人用户名中的标签(即@之前的部分),如通过local_part_suffix = + : -,攻击者可以将RCPT TO设为本地用户名+${run{...}}@localhost进行利用;

c)管理员配置Exim作为辅MX(Mail eXchange),将邮件转发至远程域,此时verify = recipient ACL只检查远程地址的域名部分(即@之后的部分),不检查标签。攻击者可以将RCPT TO设为${run{...}}@relay_to_domains进行利用。

0x01 影响版本

影响Exim 4.87~4.91版本

在4.87版本之前如果手动启用了EXPERIMENTAL_EVENT选项,服务器也会存在漏洞

0x02 修复建议

更新到最新版本4.92

0x03 时间线

2019-05-27 安全研究员向security@exim反馈漏洞报告

2019-05-28 安全研究员向distros@openwall反馈漏洞报告

2019-06-12 360CERT发布预警分析

0x04 参考链接

  1. https://www.openwall.com/lists/oss-security/2019/06/06/1
avatar