前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2019-3568: WhatsApp 0 day漏洞分析

CVE-2019-3568: WhatsApp 0 day漏洞分析

作者头像
C4rpeDime
发布2020-01-20 14:42:21
7680
发布2020-01-20 14:42:21
举报
文章被收录于专栏:黑白安全黑白安全

概述

5月14日,《金融时报》(Financial Times)报道称攻击者正利用WhatsApp的一个漏洞向受害者手机注入以色列公司NSO Group开发的先进间谍软件。WhatsApp是最流行的消息应用之一,在全世界有15亿用户。该公司的研究人员是在本月初发现这个缓冲溢出漏洞的,编号为CVE-2019-3568的漏洞存在于应用程序的VOIP堆栈中,允许攻击者向目标手机号码发送特制的SRTCP包实现远程执行代码。在iPhone或Android设备上该漏洞可以通过WhatsApp呼叫功能进行利用。整个攻击过程中不需要用户交互,受害者并不需要接听电话,呼叫记录通常也不会显示在日志里。

WhatsApp公司称已经在上周五发布的更新中修改了该漏洞。加拿大多伦多大学公民实验室的研究人员称,在WhatsApp工程师忙于堵上漏洞时有攻击者利用该漏洞针对了一位英国人权律师。对于攻击者利用NSO Group的间谍软件,该公司表示正在进行调查。

该漏洞CVE编号为CVE-2019-3568,Check Point研究人员对该漏洞进行了技术分析。

技术细节

Facebook的安全建议描述该漏洞为SRTCP协议的缓冲区溢出漏洞,所以研究人员首先对更新后的WhatsApp与之前版本进行差异分析以找出修复的代码。最终研究人员发现了SRTCP模块中的两处代码补丁:

Size Check #1

修复的函数是主要的RTCP handler函数,添加的补丁就在刚开始的位置。添加的校验验证了长度参数的最大值为1480字节(0x5C8)。

CVE-2019-3568: WhatsApp 0 day漏洞分析
CVE-2019-3568: WhatsApp 0 day漏洞分析

研究人员在调试过程中还确认这是RTCP模块中的主要函数,在WhatsApp语通话应答之前还会调用。

Size Check #2

在下面两个函数的流之间研究人员发现新添加的处理检查过程中(蓝色标注),该长度变量被使用过两次:

1.验证package的长度域是否超过长度;

2.在内存夫之前,检查长度是否小于等于1480。

CVE-2019-3568: WhatsApp 0 day漏洞分析
CVE-2019-3568: WhatsApp 0 day漏洞分析

从中可以看出,第二个检查包括新添加的log字符串,这正式为了预防溢出而进行的检查。

总结

WhatsApp应用程序中实现了复杂的STRCP协议,而且是以原生代码C/C++的形式而不是Java代码的形式实现的。研究人员在分析CVE-2019-3568漏洞过程中发现修复补丁实际上是2个新添加的size检查,即在内存中分析和处理网络包之前先进行大小检查以预防内存溢出。

因为SRTCP模块非常庞大,新版本WhatsApp应用可能也有其他的补丁研究人员并没有注意到。但就目前情况来看,研究人员认为该模块中可能还存在其他的未知漏洞。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-205,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 技术细节
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档