
POC para CVE-2025-24132 (AirBourne). Actualmente solo desencadena el desbordamiento y provoca un bloqueo.
PoC para CVE-2025-24132 (AirBourne). Actualmente solo desencadena el desbordamiento y provoca un bloqueo
En un esfuerzo por intentar obtener acceso root a la unidad principal de mi coche, he investigado y recopilado todo lo que he aprendido sobre el exploit AirPlay CVE-2025-24132 (llamado Airbourne) descubierto por Oligo Security.
https://www.oligo.security/blog/airborne
Este es mi primer proyecto de ingeniería inversa. Me lancé a esto sin haber usado nunca un depurador, con muy poca experiencia en Linux y programación, y sin haber tocado nunca MacOS hasta la mitad del proyecto. Quizás debería haber empezado con algún CTF... Bueno. He trabajado en esto de forma intermitente durante los últimos meses solo para ver si podía lograrlo.
Me llevó varios meses obtener una copia vulnerable y parcheada de un binario para hacer un diff, y luego otro mes para realmente hacerlos funcionar en un emulador.
Pero resulta que el código vulnerable es imposible de alcanzar en un emulador, ya que requiere comunicación con un chip MFi físico en la placa lógica. Después de luchar durante 2 meses preguntándome por qué no podía alcanzar el desbordamiento y luego darme cuenta del problema, pude canibalizar el binario lo suficiente parcheando las comprobaciones de las respuestas del chip MFi y rellenando con basura lo que habría devuelto. Esto me permitió finalmente llegar al desbordamiento y entender lo suficiente como para provocar un bloqueo en un sistema real.
El desbordamiento existe dentro del manejo de cifrado AES CTR. El tamaño de la clave de cifrado pasada en un paquete SETUP no se verifica y se asume que es 16, y se crea un búfer de 16.
Estos bloqueos apenas se notan, ya que el servidor generalmente se reinicia y reconecta inmediatamente, lo que solo resulta en una breve pérdida de audio o unos segundos de pantalla negra en un sistema CarPlay. Todavía no he logrado descubrir cómo están filtrando memoria, por lo que esto actualmente solo es viable en dispositivos con protecciones de pila deshabilitadas.
Encontrar una forma de filtrar memoria para evadir las protecciones de pila.
Esto funciona contra unidades CarPlay o AirPlay que no requieren ningún tipo de autorización. Si se requiere un PIN para emparejar primero, esto no funcionará ya que hay más pasos de emparejamiento involucrados que no están implementados.
Para dispositivos basados en Bluetooth, para evitar tener que hacer todo el BS de descubrir el emparejamiento Bluetooth, puedes simplemente descargar una aplicación como Pyto y ejecutar el script directamente desde el teléfono como hice yo. Mucho más fácil.
Agregaré aquí los dispositivos parcheados conocidos a medida que los descubra.
Todos los receptores AV Onkyo que admiten Airplay deberían ser vulnerables a esto. Mi unidad de prueba ha sido un TX-NR656 que no tiene ninguna protección de pila. Las unidades Creston DM-NAX-8ZSA anteriores al firmware 3.1 son vulnerables y no tienen canarios, pero el proceso Airplay se ejecuta en un contenedor. Las unidades principales Kia CCNC tienen protección de pila adecuada y hasta ahora no he logrado vencerla, pero según los registros del sistema, el carplayserver se ejecuta como root.