扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
由于3年前的一个漏洞,今天仍然有610万台设备可被远程代码执行,包括智能手机、路由器、智能电视等,而且这个漏洞早在3年前就已经修复。
该漏洞存在于UPnP™设备的便携式SDK中,也叫做libupnp。这个库是用来实现媒体播放(DLAN)或者NAT地址转换(UPnP IGD)。智能手机上的应用程序可用这些功能播放媒体文件或者利用用户的家庭网络连接到其他的设备。
事实上,这些漏洞早在2012年12月份就已经修复了,然而仍然有很多app在使用存在漏洞的老版本SDK。统计发现有547个应用还在使用老版本的libupnp,其中326个可从谷歌Play store中下载到,包括Netflix和腾讯QQ音乐。这些都是非常流行的应用,用户达百万,也就是说有数百万的用户还存在被攻击的可能性。另外,除了移动设备,路由器和智能电视也在之列。
漏洞利用
该漏洞存在于libupnp库处理简单服务发现协议(SSDP)包过程中。该协议是Universal Plug N’ Play (UPnP)标准的部分。在处理进程中会出现堆栈溢出,并且需要UDP1900端口打开。
一个精心制作的包可造成缓冲区溢出,如下图中的代码,TempBuf缓冲可溢出,并造成死机。
进一步的研究发现,它不仅能造成死机,还可以在受害者设备上运行任意代码。如此以来,攻击者便可能会完全掌控受害者设备。我们已经确认至少有20个应用,linupnp库还可被激活:
举两个例子,主要是上图中两个比较引人注意的两个app。一个是QQ音乐,在中国有1亿用户,仅在谷歌商店中就下载超过100-500万次。打开它时,会自动激活linupnp用于DLNA播放。然而它使用的SDK是1.6.17版本,是2012年4月份更新的。
Netflix是安卓机上非常流行的一个应用,它使用的linupnp版本也是非常老的——6.1.13。
SDK可以依赖其他SDK来运行。Linphone SDK可向众多应用提供网络电话(VoIP),libupnpSDK是Linphone SDK提供NAT地址转换服务众多选项中其中的一个,如果该选项被选中了,存在漏洞的服务器也就被激活了。
解决方案
我们已经将这个问题通知给了Linphone和腾讯,双方都承诺会发布补丁,并且也都在11月下旬给予了修复。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者