
Proof-of-concept триггер для CVE-2024-27815 — переполнение буфера кучи в ядре XNU в функции sbconcat_mbufs(), достижимое через датаграммные сокеты AF_UNIX и приводящее к локальному отказу в обслуживании.
Переполнение буфера кучи ядра XNU в sbconcat_mbufs() (bsd/kern/uipc_socket2.c),
достижимое непривилегированным локальным пользователем через слой датаграммных сокетов AF_UNIX.
Адрес сокета размером до SOCK_MAXADDRLEN (255) байт копируется в область данных
mbuf длиной всего MLEN (224) байта, перезаписывая до 31 байта заголовка
(m_hdr) соседнего mbuf. Каждое поле этого заголовка, кроме старшего байта
mh_flags, становится контролируемым атакующим, что приводит к панике ядра.
xnu-10002.1.13 (macOS 14.0 / iOS 17.0)xnu-10063.121.3CONFIG_MBUF_MCACHE (все поставляемые сборки)cve-2024-27815.c PoC-триггер
README.md этот файл
cc -O2 -Wall -Wextra cve-2024-27815.c -o cve-2024-27815
./cve-2024-27815
На уязвимом ядре полезная нагрузка вызывает панику машины; на исправленном ядре процесс завершается штатно.
SHA-256 файла cve-2024-27815.c (текущая ревизия, отслеживается в git):
$ sha256sum cve-2024-27815.c
90eab38b30683aa9c9f364b0f0e914e5b1e5f477086073e361352244a3ac55ac cve-2024-27815.c