廣泛被使用的開源PJSIP SIP和媒體堆疊中存在安全缺陷

zktq2021發表於2022-03-03

PJSIP開源多媒體通訊庫中披露了多達5個安全漏洞,攻擊者可能會利用這些漏洞在使用協議棧的應用程式中觸發任意程式碼執行和拒絕服務 (DoS)。在JFrog的安全研究團隊發現並報告了這些缺陷後,專案維護人員於2022年2月24日釋出了補丁(版本2.12)。

這個開源的、有缺陷的庫與去年12月開始的Apache Log4J日誌庫有一個共同點:它無處不在。

PJSIP是什麼?

PJSIP是一個用C語言編寫的開源嵌入式SIP 協議套件,支援WhatsApp和 BlueJeans等流行通訊平臺的音訊、影片和即時訊息功能。Asterisk也使用它,這是一種廣泛使用的用於VoIP網路的專用小交換機 (PBX) 交換系統。

Asterisk是一個企業級開源PBX(私有分支交換機)工具包,在大量實現中用於IP語音 (VoIP) 服務。

據Asterisk網站稱,該軟體每年被下載200萬次,在170個國家的100萬臺伺服器上執行。Asterisk為IP PBX系統、VoIP閘道器和會議伺服器提供支援,被中小企業、企業、呼叫中心、運營商和政府使用。

JFrog研究人員解釋稱,成功觸發漏洞的攻擊者可以在使用PJSIP庫的應用程式中開啟遠端程式碼執行 (RCE) 開關和 DoS 條件。

缺陷列表如下——

CVE-2021-43299(CVSS 分數:8.1) – 呼叫 pjsua_player_create() 時 PJSUA API 中的堆疊溢位

CVE-2021-43300(CVSS 分數:8.1) – 呼叫 pjsua_recorder_create() 時 PJSUA API 中的堆疊溢位

CVE-2021-43301(CVSS 分數:8.1) – 呼叫 pjsua_playlist_create() 時 PJSUA API 中的堆疊溢位

CVE-2021-43302(CVSS 分數:5.9)——呼叫 pjsua_recorder_create() 時讀取 PJSUA API 越界

CVE-2021-43303(CVSS 分數:5.9) – 呼叫 pjsua_call_dump() 時 PJSUA API 中的緩衝區溢位

哪裡出現問題

在其技術分析中,JFrog的研究人員解釋說,PJSIP框架提供了一個名為PJSUA的庫,該庫為SIP應用程式提供API。

“基本的 PJSUA API 也包含在物件導向的API中。PJSUA提供了一個富媒體操作API,我們在其中發現了 [五個] 漏洞,”他們說。

其中三個缺陷是可導致RCE的堆疊溢位漏洞,在CVSS嚴重性評級量表上被評為8.1。

其餘兩個包括PJSUA API中的讀取越界漏洞和緩衝區溢位漏洞,這兩個漏洞都可能導致拒絕服務(DoS),並且都被評為CVSS 5.9。

PJSIP的開發人員Sauw Ming在釋出的公告中指出了一個可能導致緩衝區溢位的場景:“PJSIP 中使用的緩衝區通常具有有限的大小,尤其是在堆疊中分配或由應用程式提供的緩衝區,但是在某些地方,我們不會檢查我們的使用是否會超過大小。”

脆弱的專案

JFrog表示,使用2.12版之前的PJSIP庫並將攻擊者控制的引數傳遞給以下任何API的專案很容易受到攻擊:

pjsua_player_create – 檔名引數必須由攻擊者控制

pjsua_recorder_create – 檔名引數必須由攻擊者控制

pjsua_playlist_create – file_names 引數必須(部分)受攻擊者控制

pjsua_call_dump – 緩衝區引數容量必須小於128位元組

JFrog建議將PJSIP升級到2.12版以解決漏洞。

並非第一次出現漏洞

PJSIP和其他常見的視訊會議體系結構實現中的漏洞並不是第一次。2018年8月,谷歌Project Zero的研究員Natalie Silvanovich披露了大多數常見的關鍵漏洞,包括WebRTC(被Chrome、Safari、Firefox、Facebook Messenger、Signal等使用)、PJSIP(再次被WhatsApp、BlueJeans和數以百萬計的Asterisk實現)和蘋果的FaceTime專有庫。

“如果被利用,這些漏洞會讓攻擊者僅需撥打一個影片電話,讓應用程式崩潰”。Reason Cyber security的研究負責人稱。“這將觸發記憶體堆溢位,從而允許攻擊者接管受害者的視訊通話帳戶”。

他寫道,Skype、Google Hangouts 和 WhatsApp等應用“讓在全球任何地方的兩點之間進行重要的面對面互動變得容易” 。

尤其現在隨著遠端辦公的增加,當涉及到虛擬連線時很可能存在安全問題。建議儘快修補。隨著企業軟體中越來越多地使用開源元件,軟體供應鏈安全問題突出。當前,在軟體開發生命週期中使用 SCA和SAST等自動化安全檢測工具,可以及時發現開源元件及自研程式碼中的缺陷,及時進行修復以阻止發生更嚴重的安全問題。


文章來源:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2862791/,如需轉載,請註明出處,否則將追究法律責任。

相關文章