近日,有研究員報告了Exim的base64解碼函數中的溢出漏洞,漏洞編號為CVE-2018-6789。
風險描述
Exim是一個MTA(Mail Transfer Agent,郵件傳輸代理)服務器軟件,負責郵件的路由,轉發和投遞。該軟件基于GPL協議開發,是一款開源軟件。
這個造成遠程代碼執行的漏洞是一個字節緩沖溢出漏洞,存在于 Exim 的base64解碼功能中,由于b64decode函數中解碼緩沖區長度的計算出現錯誤導致有一個字節溢出。
風險細節
通過一段代碼直接看出exim分配一個3 *(len / 4)+1字節的緩沖區來存儲解碼后的base64數據。但是,當輸入不是有效的base64字符串且長度為4n + 3時,exim分配3n + 1,但在解碼時會占用3n + 2個字節。這會導致一個字節溢出。
通常,這個錯誤并沒有危害,因為內存覆蓋通常是未使用的內存。但是,Base64解碼是一個基本功能,在很多功能代碼中使用廣泛,當字符串符合某些特定長度時,該字節就有可能覆蓋一些關鍵數據。此外,雖然漏洞利用難度較高,但是這個字節是可控的,這使得遠程代碼執行變得更加可行。
受影響版本:Exim version < 4.90.1
不受影響版本: Exim version = 4.90.1
解決方案
1、Exim版本升級至最新版4.90.1,官方可下載最新版本,鏈接為:
http://www.exim.org/mirrors.html(復制鏈接到瀏覽器)
2、按照官方的補丁方式,修改如下的代碼,重新編譯即可。
3、深信服云眼檢測系統已同步更新針對此高危風險的檢測功能,不清楚資產是否受影響的用戶,可提交域名到云眼平臺在線檢測獲取結果。
檢測地址:
https://saas.sangfor.com.cn/src/anti-tamper/login.php?type=eyeCloud(復制鏈接到瀏覽器)