
CVE-2024-27815에 대한 개념 증명 트리거로, AF_UNIX 데이터그램 소켓을 통해 도달 가능한 sbconcat_mbufs()의 XNU 커널 힙 버퍼 오버플로우로, 로컬 서비스 거부를 유발합니다.
sbconcat_mbufs()(bsd/kern/uipc_socket2.c)의 XNU 커널 힙 버퍼 오버플로우로,
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