廣泛被使用的開源PJSIP SIP和媒體堆疊中存在安全缺陷
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 帶有已知安全漏洞的開源元件仍被廣泛使用元件
- TCP/IP堆疊中的路由漏洞 (BSD,缺陷) (轉)TCP路由
- 泛型鏈式堆疊泛型
- JFrog 披露PJSIP開源多媒體通訊庫的五個漏洞JS
- C#中堆和堆疊的區別C#
- 美國使用最廣泛的社交媒體平臺(附原資料表)
- JS中堆疊記憶體的練習JS記憶體
- 記憶體堆疊記憶體
- 堆疊和記憶體的關係 細說記憶體
- Dojo開發之佈局容器和堆疊容器使用
- 81%的開發人員表示知道軟體存在缺陷
- JAVA的堆疊和記憶體、垃圾回收解說Java記憶體
- 如何:強化TCP/IP堆疊安全TCP
- 圖的深度優先遍歷(堆疊實現和非堆疊實現)
- Java 堆疊記憶體分配Java記憶體
- 彙編中引數的傳遞和堆疊修正(轉)
- 基於開源專案搭建屬於自己的技術堆疊
- 德國網路安全域性警告卡巴斯基防毒軟體存在安全缺陷防毒
- 如何強化TCP/IP 堆疊安全教程TCP
- C中關於堆疊的總結
- 函式呼叫中堆疊的個人理解函式
- Wireshark在多媒體開發中的使用
- java 堆疊的使用方法說明Java
- 這五款工具被全球黑客廣泛使用,中國菜刀入榜黑客
- JavaScript中的執行上下文和堆疊是什麼JavaScript
- 聊一聊JavaScript中的執行上下文和堆疊JavaScript
- JavaScript 值型別和引用型別在堆疊中的存放JavaScript型別
- QT分局管理:堆疊窗體(三)QT
- JS 堆疊JS
- java堆疊Java
- 堆疊圖
- 平衡堆疊
- javascript堆疊記憶體分配的區別JavaScript記憶體
- 堆疊的工作原理
- 網站被百度停止推廣並提示網站存在安全風險,不宜推廣的處理方案網站
- [譯] 如何讓你的設計系統被廣泛採用
- 兒童互動投影遊戲被廣泛應用的原因遊戲
- 圖的深度優先遍歷[非堆疊、堆疊實現]