
Proof-of-Concept-Trigger für CVE-2024-27815, einen XNU-Kernel-Heap-Buffer-Overflow in sbconcat_mbufs(), der über AF_UNIX-Datagram-Sockets erreichbar ist und einen lokalen Denial of Service verursacht.
XNU-Kernel-Heap-Buffer-Overflow in sbconcat_mbufs() (bsd/kern/uipc_socket2.c),
erreichbar durch einen unprivilegierten lokalen Benutzer über die AF_UNIX-Datagram-Socket-Schicht.
Eine Socket-Adresse von bis zu SOCK_MAXADDRLEN (255) Bytes wird in einen mbuf-
Datenbereich kopiert, der nur MLEN (224) Bytes lang ist, wodurch bis zu 31 Bytes des
Headers (m_hdr) des angrenzenden mbuf überschrieben werden. Jedes Feld dieses Headers
außer dem höchsten Byte von mh_flags wird vom Angreifer kontrolliert, was zu einem
Kernel-Panic führt.
xnu-10002.1.13 (macOS 14.0 / iOS 17.0)xnu-10063.121.3 — öffentlich ausgeliefert am 13. Mai 2024 in
macOS 14.5, iOS 17.5, iPadOS 17.5, watchOS 10.5, tvOS 17.5 und visionOS 1.2CONFIG_MBUF_MCACHE gebaut wurde (alle ausgelieferten Builds)cve-2024-27815.c PoC-Trigger
README.md diese Datei
cc -O2 -Wall -Wextra cve-2024-27815.c -o cve-2024-27815
./cve-2024-27815
Auf einem verwundbaren Kernel versetzt die Payload die Maschine in einen Panic; auf einem gepatchten Kernel beendet sich der Prozess sauber.
SHA-256 von cve-2024-27815.c (aktuelle Revision, in git verfolgt):
$ sha256sum cve-2024-27815.c
90eab38b30683aa9c9f364b0f0e914e5b1e5f477086073e361352244a3ac55ac cve-2024-27815.c