Exim遠程命令執行漏洞預警分析

0x00 漏洞詳情

日前,安全研究人員發現Exim郵件服務器存在一個遠程命令執行漏洞,漏洞編號為CVE-2019-10149。該漏洞在默認配置下可被本地攻擊者直接利用,通過低權限用戶執行root權限命令,遠程攻擊者需要修改默認配置。為了在默認配置下遠程利用該漏洞,遠程攻擊者需要與存在漏洞的服務器建立7天的連接(每隔幾分鐘發送1個字節)。

360CERT 判斷此次漏洞影響面廣,可造成本地提權並存在遠程命令執行的風險,危害較為嚴重,建議廣大用戶及時更新。

本地利用

漏洞代碼位於deliver_message()中:

 

 

代碼中new->address保存的是郵件的收件人地址,如果將收件人地址寫成${run{<command> <args>}}@localhost,則可以通過expand_string()以root權限執行任意命令。expand_string()的調用關係為:expand_string->child_open->execv

 

攻擊效果如下:

 

遠程利用

1)默認配置

當目標Exim服務器使用默認配置時,攻擊者需要與存在漏洞的服務器建立連接7天(每隔幾分鐘發送1個字節),利用條件較為苛刻,難度大。但由於Exim的代碼非常複雜,可能存在其他能更快速利用的方法。

2)非默認配置

當目標服務器使用以下配置時,攻擊者可對其進行遠程命令執行

a)管理員手動移除verify = recipient ACL配置;

b)管理員配置Exim可以識別收件人用戶名中的標籤(即@之前的部分),如通過local_part_suffix = + : –,攻擊者可以將RCPT TO設為本地用戶名+${run{…}}@localhost進行利用;

c)管理員配置Exim作為輔MXMail 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

 

 

您可能也會喜歡…

發佈留言