目前已经发现Apple的iPhone iMessage服务中的五个漏洞,无需用户交互即可操作,包括允许远程攻击者访问存储在iOS设备上的内容的漏洞。
这是由谷歌的Project Zero安全研究员娜塔莉Silvanovich最先发现的,苹果已经完全修补的缺陷四个为12.4的iOS更新的一部分。
CVE-2019-8646 是允许攻击者从远程设备读取文件而无需用户交互的错误。利用漏洞可能会泄漏SMS数据库,像图像等二进制文件。Silvanovich为这个缺陷做了一个概念验证公开。
在错误描述中,研究人员解释了问题所在:“即使启用了安全编码,也可以反序列化_NSDataFileBackedFuture类。此类是一个由文件支持的NSData对象,它在调用[NSData bytes]选择器时将本地文件加载到内存中。“
这提出了两个问题,她补充说:如果反序列化缓冲区的代码共享它,则打开对本地文件的访问; 并且,它允许创建一个NSData对象,其长度不同于其字节数组的长度。
在后一种情况下,“这违反了一个非常基本的属性,应该永远属于NSData对象,”Silvanovich解释说。“这可以允许越界读取,并且还可能导致越界写入,因为现在可以创建具有非常大的NSData对象,如果缓冲区被备份则无法实现。”
由于信息泄露的潜力很大,iOS用户应该尽快升级到最新版本。
OneSpan高级产品营销经理Sam Bakken在接受电子邮件采访时告诉Threatpost,“苹果公司发布的iOS版本分布细节不如谷歌为Android发布。” “2019年5月的Apple数据显示,85%的设备都使用iOS 12.但是,根据他们所使用的iOS 12的次要版本(12.0,12.1,12.2,12.3等),很多用户都会受到攻击这个看似非常危险的漏洞。“
其他错误
至于其他问题, CVE-2019-8647 是一个远程,无交互的免费后使用漏洞,它可以使管理iOS主屏幕的标准应用程序SpringBoard崩溃,而无需用户交互。
Silvanovich在bug描述中解释说,当使用initWithCoder反序列化类时,子类也可以被反序列化“只要它们不覆盖initWithCoder并实现所有需要具体实现的方法。”
当作为NSArray的子类的__PFArray以这种方式反序列化时,它最终调用[_PFArray initWithObjects:count:]。
“此方法使用NSKeyedUnarchiver提供的对象初始化数组,但不保留对这些对象的引用,因此当释放NSKeyedUnarchiver时,即使反序列化对象的用户仍然可以释放,也会释放数组中的对象使用它们,“她解释说。
第三个错误是 CVE-2019-8660 – 一个远程的,无交互的内存损坏缺陷,在解码类NSKnownKeysDictionary1的对象时会出现。
“这个类解码了一个NSKnownKeysMappingStrategy1类型的对象,该对象解码一个长度成员,该成员应该代表字典中键的长度,”Silvanovich在公告中说道。“但是,在解码密钥之前解码此成员,因此如果密钥是NSKnownKeysDictionary1的实例,它也使用NSKnownKeysMappingStrategy1的这个实例,则在检查长度之前将使用映射策略。”
这是一个问题,因为NSKnownKeysDictionary1实例使用此长度来分配缓冲区,并且在分配期间长度乘以8,而不进行整数溢出检查。然后,代码将尝试使用未经过相应的长度将values数组(另一个已解码的参数)复制到缓冲区中。
但是,她说由于副本的不受控制的性质,这个问题很难被利用。
至于另外两个,研究人员说CVE-2019-8662与CVE-2019-8647类似,但对bug描述的访问受到限制。Silvanovich表示,该团队暂时扣留CVE-2019-8641,因为Apple最初的修复并未解决漏洞。
总体而言,OneSpan的Bakken指出,这些发现强调了移动环境应该被视为“敌对”的事实。
“考虑到移动设备是一个恶劣的环境,并应用多种控制和措施,以确保您的应用程序安全,并确保用户的数据安全,”他指出。
他补充说,开发商也应该注意。
“移动应用程序开发人员和发布商需要经常提醒自己,即使他们认为他们的移动应用程序在安全性方面完全搞定(请记住100%安全是不可能的),操作系统或其他应用程序中的漏洞或用户设备上的恶意软件可能会使他们的应用和用户面临风险,“他说。
原文链接: https://threatpost.com/apple-imessage-remote-attackersread-iphone-messages/146789/
转载自安全加:http://toutiao.secjia.com/article/page?topid=111790