Apple CVE-2018-4407 内核漏洞利用与修复

栏目: 编程工具 · 发布时间: 6年前

内容简介:昨天Kevin Backhouse发布的一条推特火了,他在推特中提到,只要利用CVE-2018-4407的PoC就可以使同一Wifi下的macOS High Sierra与iOS11设备崩溃,同时附带了16秒的小视频演示。实际上这是昨天Apple发布的更新回顾中提到的漏洞,这个漏洞作者已经及时上报给了Apple并在iOS12(9月17日)和macOS Mojave(9月24日)系统更新中已经修复完成。

Apple CVE-2018-4407 内核漏洞利用与修复

写文档没保存啊?来来来,我帮你关电脑

昨天Kevin Backhouse发布的一条推特火了,他在推特中提到,只要利用CVE-2018-4407的PoC就可以使同一Wifi下的macOS High Sierra与iOS11设备崩溃,同时附带了16秒的小视频演示。

实际上这是昨天Apple发布的更新回顾中提到的漏洞,这个漏洞作者已经及时上报给了Apple并在iOS12(9月17日)和macOS Mojave(9月24日)系统更新中已经修复完成。

Kevin Backhouse在博客中简单分析了漏洞

CVE-2018-4407是Kevin发现的XNU系统内核中的堆缓冲区溢出漏洞,Apple把它分为了远程代码执行漏洞,攻击者有可能利用缓冲区溢出进行远程代码执行。不过目前Kevin给出的PoC仅仅是造成系统崩溃重启。

漏洞影响范围

iOS11及早期版本所有设备

MacOS High Sierra 10.13.6及早期版本所有设备

漏洞严重性及防护措施

该漏洞是XNU系统内核中网络部分堆缓冲区溢出,因此会同时影响macOS和iOS。要触发该漏洞,攻击者也只需向目标设备发送特殊数据包即可。(当然,需要和目标设备处在同一网络下)但是处在同一网络下并发现设备对攻击者来说是较为容易做到的,更不用说可能造成的远程代码执行,因此这个漏洞潜在危害还是蛮高的。同时,目前基本所有杀毒软件都没法防御这种攻击。

针对此攻击的防护除了更新外只有一种方法,那就是开启macOS防火墙设置中的拒绝全部连接。

漏洞产生

错误产生于icmp代码模块中(bsd/netinet/ip_icmp.c:339)

m_copydata(n, 0, icmplen, (caddr_t)&icp->icmp_ip);

这段代码处于icmp_error函数中,注释中可以看到它是为了在收到损坏数据包时生成一个报错数据包,并通过ICMP协议返回。上文函数目的是将损坏数据包的报头复制到ICMP消息中,但报头如果过大的话,就会导致缓冲区mbuf出现问题。(mbuf是存储出入站数据包的数据类型)。在这部分代码中,n为入站数据包,m为出站ICMP数据包,而m在294-296行进行内存分配。

if (MHLEN > (sizeof(struct ip) + ICMP_MINLEN + icmplen))
  m = m_gethdr(M_DONTWAIT, MT_HEADER);  /* MAC-OK */
else
  m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);

接着在314行通过mtod得到m数据指针

icp = mtod(m, struct icmp *);

mtod是宏命令,因此不会检查mbuf大小是否合适,数据也并未复制到icp,而是到了&icp->icmp_ip,即icp + 8 bytes。

不过作者没再继续单步调试,基于源码的分析,作者认为m_gethdr创建mbuf可容纳88字节,并通过实验发现触发缓冲区溢出时icmplen大于等于84即可。

参考链接

https://twitter.com/kevin_backhouse/status/1057352656560287746

https://lgtm.com/blog/apple_xnu_icmp_error_CVE-2018-4407


以上所述就是小编给大家介绍的《Apple CVE-2018-4407 内核漏洞利用与修复》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计沟通十器

设计沟通十器

Daniel M. Brown / 樊旺斌 / 机械工业出版社 / 2008-12 / 49.00元

本书提供了网站设计时所需的可交付文档资料包括:概念模型,站点地图,可用性报告等,这些文档资料是设计人员和客户进行交流的主要工具。本书深入讨论了文档推介和风险规避技巧,向你展示了如何将文档资料按要求制作成有效的交流工具。 本书内容全面,结构清晰,讲解详细。可作为网站设计人员的参考用书。 关于网站设计的多数讨论好像都着眼于流程的创建,然而,要想把概念变为现实,需要一整套强大的可交付文档资料......一起来看看 《设计沟通十器》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具