主流VoIP应用中出现RCE漏洞
编辑搜图
目前世界上最流行的一些通信应用程序都使用了一个充满了安全漏洞的开源库。
这个开源的、含有大量漏洞的库与12月爆发的Apache Log4J日志库漏洞都有一个共同点:他们被各个行业广泛使用。
这个PJSIP库,是一个开源的多媒体通信库,Asterisk程序一直在使用它进行开发。Asterisk是一个企业级的、开源的PBX(专用分支交换机)工具包,在大量的工程中用于IP语音(VoIP)服务。
据Asterisk网站称,该软件每年被下载超过200万次,在170个国家的将近100万台服务器上运行。Asterisk为IP PBX系统、VoIP网关和会议服务器提供支持,它也被大量中小企业、呼叫中心、运营商和政府所使用。
周一,开发平台提供商JFrog Security披露了PJSIP的五个内存泄露漏洞。PJSIP提供了一个API,该API可以被IP电话和会议应用等IP电话应用使用。
JFrog研究人员解释说,攻击者成功利用这些漏洞后,可以在使用PJSIP库的应用程序中打开远程代码执行(RCE)的开关。
在Jfrog进行披露之后,PJSIP的维护者已经修复了这五个CVE漏洞,如下图所示。
编辑搜图
漏洞产生的原因
在其分析报告中,JFrog研究人员解释说,PJSIP框架提供了一个名为PJSUA的库,该库为SIP应用提供了一个API。他们说, PJSUA提供了丰富的媒体处理API,我们在那里发现了五个漏洞。其中的三个漏洞是堆栈溢出漏洞,可导致RCE,它们在CVSS严重性评级表上被评为8.1。其余的两个是PJSUA API中的一个越界读取漏洞和一个缓冲区溢出漏洞,这两个漏洞都可能会导致拒绝服务攻击(DoS),这两个漏洞的CVSS评分为5.9。
含有漏洞的位置
JFrog说,那些使用PJSIP库2.12版之前的项目,如果向以下任何一个API传递攻击者控制的参数,都会受到攻击。
-
l pjsua_player_create - 文件名参数必须是攻击者可控制的。
-
l pjsua_recorder_create - 文件名参数必须是攻击者可控制的。
-
l pjsua_playlist_create - 文件名参数必须是攻击者可以控制的。
-
l pjsua_call_dump - 缓冲区参数容量必须小于128字节。
-
JFrog建议将PJSIP升级到2.12版本来解决这些漏洞。
这不是第一次爆发漏洞
PJSIP和其他常见的视频会议软件中出现漏洞并不新鲜。2018年8月,谷歌Project Zero研究员Natalie Silvanovich披露了大量常见的关键漏洞,包括WebRTC(由Chrome、Safari、Firefox、Facebook Messenger、Signal等使用)、PJSIP(同样,在Asterisk的数百万个软件中使用)和苹果的FaceTime专有库。
Reason Cybersecurity的研究人员表示,如果这些漏洞被攻击者利用,那么这些漏洞会让攻击者仅仅通过拨打视频电话,就可以令使用这些组件的应用程序崩溃。从而引发内存堆溢出,使得攻击者能够接管受害者的视频通话账户。
他写道,Skype、Google Hangouts和WhatsApp等应用程序可以使全球任何地方的两点之间能够进行面对面交流。但从那时起,当需要进行虚拟连接时,这种漏洞的危害性就变得很大,我们最好听从JFrog的建议,尽快对漏洞进行修补。
我有话说: