XNU 内核在 sbconcat_mbufs()(bsd/kern/uipc_socket2.c)中存在堆缓冲区溢出,
可由非特权本地用户通过 AF_UNIX 数据报套接字层触发。
一个长度最多为 SOCK_MAXADDRLEN(255)字节的套接字地址被复制到仅有
MLEN(224)字节长的 mbuf 数据区中,从而覆盖相邻 mbuf 头部(m_hdr)
最多 31 字节。该头部的每个字段(除 mh_flags 的高字节外)都变为攻击者可控,
从而导致内核崩溃。
xnu-10002.1.13(macOS 14.0 / iOS 17.0)xnu-10063.121.3 — 于 2024 年 5 月 13 日 公开发布,
随 macOS 14.5、iOS 17.5、iPadOS 17.5、watchOS 10.5、tvOS 17.5 和 visionOS 1.2 一同发布CONFIG_MBUF_MCACHE 构建的内核(所有正式发布版本)cve-2024-27815.c PoC 触发程序
README.md 本文件
cc -O2 -Wall -Wextra cve-2024-27815.c -o cve-2024-27815
./cve-2024-27815
在存在漏洞的内核上,该载荷会导致机器崩溃;在已修补的内核上, 进程会正常退出。
cve-2024-27815.c 的 SHA-256(当前修订版本,由 git 跟踪):
$ sha256sum cve-2024-27815.c
90eab38b30683aa9c9f364b0f0e914e5b1e5f477086073e361352244a3ac55ac cve-2024-27815.c