廣泛被使用的開源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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JFrog 披露PJSIP開源多媒體通訊庫的五個漏洞JS
- JS中堆疊記憶體的練習JS記憶體
- 特斯拉存在安全缺陷?可在車主不知情下被訪問??
- 特斯拉存在安全缺陷?可在車主不知情下被訪問
- 堆疊和記憶體的關係 細說記憶體
- 81%的開發人員表示知道軟體存在缺陷
- 美國使用最廣泛的社交媒體平臺(附原資料表)
- 德國網路安全域性警告卡巴斯基防毒軟體存在安全缺陷防毒
- 這五款工具被全球黑客廣泛使用,中國菜刀入榜黑客
- C中關於堆疊的總結
- javascript堆疊記憶體分配的區別JavaScript記憶體
- JavaScript中的執行上下文和堆疊是什麼JavaScript
- 聊一聊JavaScript中的執行上下文和堆疊JavaScript
- QT分局管理:堆疊窗體(三)QT
- JS 堆疊JS
- 平衡堆疊
- 堆疊圖
- Wireshark在多媒體開發中的使用
- JS 資料型別和堆疊JS資料型別
- CSS之定位和堆疊屬性CSS
- JavaScript中記憶體使用規則--堆和棧JavaScript記憶體
- 瞭解Javascript中的執行上下文和執行堆疊JavaScript
- project中的堆疊記憶體,記憶體地址引用,gc相關問題Project記憶體GC
- Thrift的網路堆疊
- [JVM工具(1)] 堆疊檢查利器jstat的使用JVMJS
- Java之String和StringBuffer堆疊圖分析Java
- 這個開源軟體被2億使用者使用
- 那些 “被消失” 的缺陷
- 從零開始的堆疊卡片控制元件控制元件
- Java堆疊的深度分析及記憶體管理技巧Java記憶體
- Linphone SIP堆疊錯誤可允許攻擊者遠端使客戶端裝置崩潰客戶端
- windows核心程式設計--記憶體堆疊Windows程式設計記憶體
- JavaScript的工作原理:引擎,執行時和呼叫堆疊JavaScript
- C#堆疊(Stack)C#
- 網站被百度停止推廣並提示網站存在安全風險,不宜推廣的處理方案網站
- 被廣泛使用的OAuth2.0的密碼模式已經廢了,放棄吧OAuth密碼模式
- 尼爾森:2023年LGBTQ+在媒體和廣告中的表現
- 代理IP被廣泛應用的原因是什麼?