Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
spd_flasher — CVE-2022-38694 Gehärteter Exploit - RP2350 USB-Host-Auto-Flasher für Unisoc-Geräte | Kitploit
Tools/GitHubGitHub/leochen-coremind/spd_flasher
Embedded-System-SicherheitExploitationReverse EngineeringHardware-HackingMobile SicherheitLernen & Bildung
GitHubleochen-coremind/spd_flasher

spd_flasher

CVE-2022-38694 Gehärteter Exploit - RP2350 USB-Host-Auto-Flasher für Unisoc-Geräte

Repository anzeigen
3119vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2022-38694 Gehärteter Exploit — RP2350 USB Host Auto Flasher

中文版 README

Tutorial

  • UDX710-Bootkette-Reverse-Engineering und RP2350-Hardened-Boot-Tutorial

Nutzt die CVE-2022-38694-BootROM-Schwachstelle von Unisoc über einen Raspberry Pi RP2350-USB-Host aus, um beim Booten automatisch den SPL-Loader zu senden und einen beliebigen u-boot zu starten.

Verlegt die Exploit-Kette – ursprünglich benötigte sie einen PC + spd_dump – auf einen RP2350-Mikrocontroller. Gerät anschließen, automatisch flashen, unterstützt kontinuierliches Flashen.

Funktionsweise

CVE-2022-38694 ist eine einmalige Umgehung der Signaturprüfung im Unisoc-BootROM. Indem ein Exec-Stub an eine bestimmte Speicheradresse gesendet wird, wird die Rücksprungadresse überschrieben, die Signaturprüfungen werden umgangen und das BootROM kann beliebiges FDL1 akzeptieren und ausführen.

Wichtige Erkenntnis: FDL1 und SPL-Loader teilen sich dieselbe Ladeadresse (0x28007000), daher kann ein gepatchter SPL-Loader anstelle von FDL1 gesendet werden, wodurch ein beliebiger u-boot bootet.

Härtungsprozess (Zwei Stufen)

Stufe 1: Erste Freischaltung (PC + spd_dump)

Für die Ersteinrichtung wird ein PC mit spd_dump benötigt:

┌──────────────────────────────────────────────────────────────────────────┐
│                    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 │
└──────────────────────────────────────────────────────────────────────────┘

Schritte:

  1. CVE-2022-38694 verwenden, um spl-unlock.bin zu senden und das Gerät zu booten
  2. Das gepatchte fdl2-dl.bin senden (FDL2 ohne Secure-Boot-Prüfung)
  3. FDL2 verwenden, um u-boot ohne Secure Boot in die Uboot-Partition zu schreiben
  4. Splloader-Partition löschen → das Gerät verliert den normalen Bootvorgang und wechselt bei jedem Einschalten in den BootROM-DL-Modus

Stufe 2: Gehärteter Betrieb (RP2350 Auto-Flash)

Wenn der Splloader gelöscht ist, wechselt das Gerät bei jedem Einschalten in den BootROM-Download-Modus. Der RP2350-USB-Host übernimmt die Exploit-Kette automatisch:

┌──────────────────────────────────────────────────────────────────────────┐
│                   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.       │
└──────────────────────────────────────────────────────────────────────────┘

Warum den Splloader löschen?

  • Normale Bootkette: BootROM → SPL-Loader → u-boot → System
  • Der SPL-Loader prüft die u-boot-Signatur – er wird modifizierten u-boot ablehnen
  • Ohne Splloader kann das BootROM kein SPL finden → es wechselt in den Download-Modus
  • CVE-2022-38694 sendet spl-unlock (überspringt die Signaturprüfung) → startet u-boot ohne Secure Boot erfolgreich

Exploit-Kette (RP2350-Ausführung)

┌─────────────┐     ┌──────────────────┐     ┌───────────────────┐     ┌──────────────┐
│  BootROM    │     │  Exec Stub       │     │  SPL Loader       │     │  U-Boot      │
│  Handshake  │ ──► │  @0x3F28 (136B)  │ ──► │  @0x28007000      │ ──► │  Boot OK     │
│  CHECK_BAUD │     │  Bypass sig chk  │     │  Replaces FDL1    │     │              │
└─────────────┘     └──────────────────┘     └───────────────────┘     └──────────────┘
  1. BootROM-Handshake – CHECK_BAUD + CONNECT, BSL-Kommunikation aufbauen
  2. Exec-Stub senden – 136 Bytes an 0x3F28 laden, CVE-2022-38694 ausnutzen, um die Rücksprungadresse zu überschreiben und die Signaturprüfung zu umgehen
  3. SPL-Loader senden – FDL1 und SPL-Loader teilen sich die Ladeadresse 0x28007000, Signatur ist bereits umgangen
  4. U-Boot booten – spl-unlock überspringt die Signaturprüfungen und bootet u-boot ohne Secure Boot

Voraussetzungen: Firmware patchen

Dieses Projekt enthält keine universelle gepatchte Firmware. Sie müssen die Firmware Ihres Geräts selbst patchen.

Patch-Anleitung

Siehe TomKing062s Wiki:

  • 🇬🇧 patch_do_cboot — SPL (Englisch)
  • 🇨🇳 patch_do_cboot — SPL (中文)

Zu patchende Firmware

FirmwarePatchAusgabeZweck
FDL2 (u-boot/lk)Secure-Partitions-Schreibprüfungen per NOP überschreibenfdl2-dl.binStufe 1: wird per spd_dump für Partitionsschreibvorgänge gesendet
U-Bootdo_cboot() patchen, um Secure Boot zu entfernenModifizierter ubootStufe 1: wird auf das Gerät geschrieben, ersetzt Standard-uboot
SPL Loadersigncheck() und Ergebnisprüfungen per NOP überschreibenspl-unlock.binStufe 1 & 2: wird per CVE-2022-38694 gesendet

spl-unlock.bin in Header konvertieren

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

Aktualisieren Sie den Array-Namen und die Makros in fdl1_data.h, sodass sie mit den Codereferenzen übereinstimmen.

Unterstützte Plattformen

Dieses Projekt verwendet derzeit den UDX710-Exec-Stub (custom_exec_3f28.bin).

Um es an andere Chips anzupassen, ersetzen Sie den Exec-Stub und die Ladeadresse in custom_exec_data.h:

Tool herunterladen