PHPMailer遠程代碼執行漏洞(CVE-2021-3603)

發布時間 2021-06-21

0x00 漏洞概述

CVE     ID

CVE-2021-3603

時      間

2021-06-21

類      型

RCE

等      級

高危

遠程利用

影響范圍

PHPMailer <= 6.4.1  

攻擊復雜度

可用性

用戶交互

所需權限

PoC/EXP

已公開

在野利用

 

0x01 漏洞詳情

image.png

PHPMailer是一個用于發送電子郵件的開源PHP庫,可以設定發送郵件地址、回復地址、郵件主題、html網頁及上傳附件,使用起來非常方便,目前已被全球超過900萬的用戶使用。

2021年06月16日,PHPMaile發布安全公告,修復了PHPMailer中的2個遠程代碼執行漏洞(CVE-2021-3603和CVE-2021-34551),遠程攻擊者可以利用這些漏洞在系統上執行任意代碼。

PHPMailer遠程代碼執行漏洞(CVE-2021-3603)

該漏洞的CVSSv3評分為8.1。validateAddress()函數用于驗證電子郵件地址,如果validateAddress()的$patternselect參數被設置為'php'(默認值,由PHPMailer::$validator定義),并且全局命名空間包含一個名為php的函數,它將優先于同名的內置驗證器被調用。遠程攻擊者可以通過構造惡意請求來利用此漏洞,從而可以在目標系統上執行任意代碼。該漏洞已經在PHPMailer 6.5.0中通過拒絕使用簡單字符串作為驗證器函數名稱來緩解。

 

PHPMailer遠程代碼執行漏洞(CVE-2021-34551)

如果setLanguage()方法的$lang_path參數未過濾用戶輸入且被設置為UNC路徑,攻擊者可以通過從該UNC路徑加載文件來遠程執行腳本或代碼。此漏洞僅存在于可解析 UNC 路徑的系統,通常僅適用于 Microsoft Windows。

 

影響范圍

PHPMailer <= 6.4.1

 

0x02 處置建議

目前此漏洞已經修復,建議及時升級更新至PHPMailer 6.5.0。

下載鏈接:

https://github.com/PHPMailer/PHPMailer

 

通用安全建議

對代碼進行安全審計,盡早檢測潛在的安全漏洞,并增強代碼邏輯性。

對用戶的輸入進行過濾或轉義,避免參數可控。

用戶應定期更新軟件、程序和應用程序,確保應用程序是最新的,以保護系統免受漏洞利用。

 

0x03 參考鏈接

https://github.com/PHPMailer/PHPMailer/blob/master/SECURITY.md

https://github.com/PHPMailer/PHPMailer/commit/45f3c18dc6a2de1cb1bf49b9b249a9ee36a5f7f3

https://www.huntr.dev/bounties/1-PHPMailer/PHPMailer/

https://nvd.nist.gov/vuln/detail/CVE-2021-3603

 

0x04 時間線

2021-06-16  PHPMailer發布安全公告

2021-06-21  VSRC發布安全通告

 

0x05 附錄

 

CVSS評分標準官網:http://www.first.org/cvss/

image.png