远程打挂所有的apple设备 — CVE-2018-4407分析
简述Kevin Backhouse 发现了一个iOS和mac OS的内核漏洞 —— CVE-2018-4407,该漏洞出现在XNU内核中,可以远程攻击使所有的apple设备挂掉。
漏洞演示demo:https://www.youtube.com/watch?v=aV7yEemjexk
漏洞已经上报给了Apple并在iOS12(9月17日)和macOS Mojave(9月24日)系统更新中已经修复完成。该漏洞影响以下版本的设备:
iOS 11以及之前的所有设备 (upgrade to iOS 12)
macOS High Sierra 10.13.6以及以下所有设备(patched in security update 2018-001)
macOS Sierra 10.12.6以及之前所有的设备(patched in security update 2018-005)
OS X El Capitan以及之前所有设备
漏洞分析漏洞出现在icmp_error代码中, (bsd/netinet/ip_icmp.c:339):
我们知道,ICMP报文主要有两大功能:查询报文和差错报文。在互联网传输过程中,IP数据报难免会出现差错,通常出现差错时处理方法就是丢弃,但一般出现差错后,接收方会发送ICMP报文给主机,告诉它一些差错信息,而icmp_error就是这一部分的实现。
产生漏洞的代码为:1m_copydata(n, 0, icmplen, (caddr_t)&icp->icmp_ip);
m_copydata为一个简单的指定长度的数据拷贝,其实现如下:
icmp_error中的m_copydata是将出错ip数据包的包头复制到icmp的消息体中,其中n为接收到的出错的ip数据包,icp->icmp_ip为要拷贝的目的地址,如果n的包头过大,超过了icp分
...