Exploit PoC para ejecutar código arbitrario en productos Apple (CVE-2023-23504) lanzado

El investigador de seguridad Adam Doupé de ASU SEFCOM ha revelado detalles de una vulnerabilidad de seguridad ahora parcheada en Apple macOS, Apple Watch, iPhone, iPad y iPod que un atacante podría explotar para ejecutar código arbitrario con privilegios de kernel.

Rastreada como CVE-2023-23504, la vulnerabilidad se refiere a una vulnerabilidad de suscripción de montón en el kernel XNU. XNU es el sistema operativo utilizado para varios productos de Apple, incluidos Mac, iPhone, iPad, Apple Watch, Apple TV, etc. La vulnerabilidad existe en dlil.c de XNU (que maneja las interfaces de red) causada por un desbordamiento de enteros (uint16_t) en if.c. Esto puede ser activado por un usuario raíz que crea 65536 interfaces de red en total.

Apple abordó la vulnerabilidad como parte de las actualizaciones de macOS Ventura 13.2 , macOS Monterey 12.6.3, watchOS 9.3, iOS 15.7.3 y 16.3, y iPadOS 15.7.3 y iPadOS 16.3 lanzadas este mes con un mejor manejo de la memoria.

El investigador escribió sobre los detalles técnicos: La causa raíz de CVE-2023-23504 es “Cuando se crea una interfaz en ifnet_attach:dlil.c , se llama a if_next_index:if.c para crear un  if_index en  ifnet_t ifp :

Este índice se convierte en uint16_t .

if_next_index  crea una parte de la memoria que se divide en dos: ifnet_addrs e  ifindex2ifnet , y los comentarios de if_next_index  insinúan la vulnerabilidad:

“ifnet_addrs[] está indexado por (if_index – 1), mientras que ifindex2ifnet[] está indexado por ifp->if_index”.

Esto significa que cuando se crean 65536 interfaces de red, la última interfaz tiene un ifp->if_index de 0, y luego  ifnet_attach  escribirá la estructura asignada  ifaddr * ifa  fuera de los límites de  ifnet_addrs :

En un escenario de ataque hipotético, un atacante podría explotar esta vulnerabilidad para ejecutar código arbitrario con privilegios de kernel utilizando una aplicación especialmente diseñada y alojándola en un servidor que luego podría enviarse a un posible objetivo a través de ingeniería social y anuncios maliciosos.

Adam Doupé informó la vulnerabilidad al equipo de seguridad de Apple y lanzó un código de prueba de concepto (PoC) que demuestra cómo se puede explotar la vulnerabilidad para bloquear el sistema.