Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
spd_flasher — CVE-2022-38694 Exploit irrobustito - Flasher automatico USB Host RP2350 per dispositivi Unisoc | Kitploit
Strumenti/GitHubGitHub/leochen-coremind/spd_flasher
Sicurezza Sistemi EmbeddedExploitReverse EngineeringHacking HardwareSicurezza MobileApprendimento e Formazione
GitHubleochen-coremind/spd_flasher

spd_flasher

CVE-2022-38694 Exploit irrobustito - Flasher automatico USB Host RP2350 per dispositivi Unisoc

Vedi Repository
31191 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Exploit irrobustito CVE-2022-38694 — Auto Flasher USB Host RP2350

中文版 README

Tutorial

  • Tutorial sul Reverse Engineering della Boot Chain UDX710 e sul Boot Hardened RP2350

Sfruttando la vulnerabilità CVE-2022-38694 del BootROM Unisoc tramite Raspberry Pi RP2350 USB Host per inviare automaticamente l'SPL Loader all'avvio e avviare un u-boot arbitrario.

Sposta la catena di exploit — originariamente richiedeva un PC + spd_dump — su un microcontrollore RP2350. Collega il dispositivo, flash automatico, supporta flash continuo.

Come Funziona

CVE-2022-38694 è un bypass una tantum della verifica della firma nel BootROM Unisoc. Inviando un exec stub a uno specifico indirizzo di memoria, l'indirizzo di ritorno viene sovrascritto, aggirando i controlli di firma e consentendo al BootROM di accettare ed eseguire FDL1 arbitrario.

Concetto chiave: FDL1 e SPL Loader condividono lo stesso indirizzo di caricamento (0x28007000), quindi un SPL Loader patchato può essere inviato al posto di FDL1, avviando un u-boot arbitrario.

Processo di Hardening (Due Fasi)

Fase 1: Sblocco Iniziale (PC + spd_dump)

La configurazione iniziale richiede un PC con spd_dump:

┌──────────────────────────────────────────────────────────────────────────┐
│                    Stage 1: PC-side Initial Unlock                       │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Step 1: Exploit CVE-2022-38694 to boot patched SPL                     │
│  ┌────────────┐    ┌────────────┐    ┌─────────────────┐                │
│  │ Exec Stub  │───►│ spl-unlock │───►│ Device boots    │                │
│  │ @0x3F28    │    │ @0x28007000│    │ into DL mode    │                │
│  └────────────┘    └────────────┘    └────────┬────────┘                │
│                                               │                          │
│  Step 2: Send patched FDL2 via spd_dump, flash u-boot without           │
│          secure boot, erase splloader                                    │
│                                               │                          │
│  ┌─────────────────┐    ┌──────────────────────▼───────────┐            │
│  │ Send fdl2-dl    │───►│ Write u-boot (secure boot removed│            │
│  │ (patched FDL2)  │    │ + Erase splloader partition)     │            │
│  └─────────────────┘    └──────────────────────────────────┘            │
│                                                                          │
│  ★ After erasing splloader, device enters BootROM DL mode on every boot │
└──────────────────────────────────────────────────────────────────────────┘

Passaggi:

  1. Usa CVE-2022-38694 per inviare spl-unlock.bin e avviare il dispositivo
  2. Invia fdl2-dl.bin patchato (FDL2 con verifica del secure boot rimossa)
  3. Usa FDL2 per scrivere u-boot senza secure boot nella partizione uboot
  4. Cancella la partizione splloader → il dispositivo perde l'avvio normale, entra in modalità DL BootROM a ogni accensione

Fase 2: Operazione Hardened (Auto Flash RP2350)

Con splloader cancellato, il dispositivo entra in modalità download BootROM a ogni accensione. L'USB Host RP2350 gestisce automaticamente la catena di exploit:

┌──────────────────────────────────────────────────────────────────────────┐
│                   Stage 2: RP2350 Automated Boot                        │
├──────────────────────────────────────────────────────────────────────────┤
│                                                                          │
│  Power on → no splloader → BootROM download mode                        │
│                                                                          │
│  ┌─────────┐    ┌────────────┐    ┌─────────────┐    ┌──────────────┐  │
│  │ BootROM │───►│ Exec Stub  │───►│ spl-unlock  │───►│ U-Boot       │  │
│  │ Handshk │    │ Bypass sig │    │ as FDL1     │    │ (no secboot) │  │
│  └─────────┘    └────────────┘    └─────────────┘    │ Boot OK ✓    │  │
│                                                       └──────────────┘  │
│                                                                          │
│  ★ Fully automatic. Unplug → auto-reset → ready for next device.       │
└──────────────────────────────────────────────────────────────────────────┘

Perché cancellare splloader?

  • Catena di avvio normale: BootROM → SPL Loader → u-boot → Sistema
  • SPL Loader verifica la firma di u-boot — rifiuterà un u-boot modificato
  • Con splloader cancellato, BootROM non trova SPL → entra in modalità download
  • CVE-2022-38694 invia spl-unlock (salta il controllo della firma) → avvia con successo u-boot senza secure boot

Catena di Exploit (Esecuzione RP2350)

┌─────────────┐     ┌──────────────────┐     ┌───────────────────┐     ┌──────────────┐
│  BootROM    │     │  Exec Stub       │     │  SPL Loader       │     │  U-Boot      │
│  Handshake  │ ──► │  @0x3F28 (136B)  │ ──► │  @0x28007000      │ ──► │  Boot OK     │
│  CHECK_BAUD │     │  Bypass sig chk  │     │  Replaces FDL1    │     │              │
└─────────────┘     └──────────────────┘     └───────────────────┘     └──────────────┘
  1. Handshake BootROM — CHECK_BAUD + CONNECT, stabilire la comunicazione BSL
  2. Invia Exec Stub — Carica 136 byte a 0x3F28, sfrutta CVE-2022-38694 per sovrascrivere l'indirizzo di ritorno, aggira la verifica della firma
  3. Invia SPL Loader — FDL1 e SPL Loader condividono l'indirizzo di caricamento 0x28007000, firma già aggirata
  4. Avvia U-Boot — spl-unlock salta i controlli di firma, avvia u-boot con secure boot rimosso

Prerequisiti: Patch del Firmware

Questo progetto non include firmware patchato universale. Devi patchare tu stesso il firmware del tuo dispositivo.

Tutorial di Patch

Fai riferimento alla Wiki di TomKing062:

  • 🇬🇧 patch_do_cboot — SPL (Inglese)
  • 🇨🇳 patch_do_cboot — SPL (Cinese)

Firmware da Patchare

FirmwarePatchOutputScopo
FDL2 (u-boot/lk)NOP sui controlli di scrittura delle partizioni securefdl2-dl.binFase 1: inviato tramite spd_dump per la scrittura delle partizioni
U-BootPatch do_cboot() per rimuovere il secure bootUboot modificatoFase 1: scritto sul dispositivo, sostituisce l'uboot originale
SPL LoaderNOP signcheck() e controlli dei risultatispl-unlock.binFase 1 e 2: inviato tramite CVE-2022-38694

Converti spl-unlock.bin in Header

xxd -i spl-unlock.bin > fdl1_data.h

Aggiorna il nome dell'array e le macro in fdl1_data.h per corrispondere ai riferimenti nel codice.

Piattaforme Supportate

Questo progetto attualmente usa l'exec stub UDX710 (custom_exec_3f28.bin).

Per adattarlo ad altri chip, sostituisci l'exec stub e l'indirizzo di caricamento in custom_exec_data.h:

PiattaformaIndirizzo ExecRiferimento
UDX7100x3F28Questo progetto (predefinito)
UMS312 / UMS5120x3EE8exec_addr_v2
UMS92300x65017F08exec_addr_v2
SC9820E / SC9832E0x4F18 / 0x4EE8CVE-2022-38694
Scarica lo strumento