CVE-2024-27815 编写文档

主要观点:

  • 介绍了 CVE-2024-27815 这一 XNU 内核中的缓冲区溢出漏洞,包括其在不同系统版本中的情况、修复过程及相关证明等。
    关键信息:
  • 漏洞位于sbconcat_mbufs函数,影响编译了CONFIG_MBUF_MCACHE的内核,在xnu-10002.1.13引入,xnu-10063.121.3修复,分别对应 macOS 14.0/ iOS 17.0 和 macOS 14.5/ iOS 17.5 等。
  • 给出了漏洞的时间线,包括各个系统版本的发布及相关内核更新。
  • 阐述了安全公告的链接及TURPENTINE.c文件的相关信息,包括其哈希值。
  • 分析了漏洞的根本原因是在特定条件下bcopy操作导致数据超出mlen范围,以及苹果的修复方式是正确比较MLENUINT8_MAX
  • 提供了利用该漏洞的概念验证(PoC)代码及示例崩溃情况,包括调试信息和相关内核扩展。
    重要细节:
  • mbuf由固定大小的头和数据部分组成,_MSIZE为总大小,MLEN为数据部分长度,asa->sa_len可达 255 字节。
  • 引入漏洞的宏错误使用了_MSIZE而不是MLEN
  • PoC 只需 3 个系统调用,需内核编译时启用CONFIG_MBUF_MCACHE,通过创建特定大小的套接字地址触发溢出。
  • 示例崩溃显示为kernel_task中的通用保护故障,调试信息显示了寄存器状态等。
阅读 33
0 条评论