
Un PoC della vulnerabilità CVE-2024-56426.
Strumenti unificati CVE-2024-56426 per le famiglie Exynos 990 Galaxy S20, S20 FE e Note20. L'exploit accetta tutti e dieci i nomi dei modelli e li mappa su sei famiglie di bootloader stock verificate.
[!CAUTION] Il bundle di chiavi tracciato e le immagini generate sono capaci di fusione. La fusione è irreversibile. Un telefono fuso su una chiave può avviare solo immagini compatibili con quella chiave. Un modello, una revisione di rollback, un set di patch o un bundle di chiavi errati possono lasciare il dispositivo in un boot loop fuso. Usa chiavi di sviluppo e il payload UFS durante l'iterazione. Aggiungi
--no-fusea ogni comando di preparazione/firma a meno che la fusione con chiave personalizzata non sia esplicitamente intenzionale.
Il modello selezionato controlla sia l'ID modello BL1 sia il TSV della patch LK specifica per modello. Runtime artifact controlla quale
firmware stock e quali immagini divise cifrate vengono usate dal preflight. I quattro flag non-5G che usano artefatti runtime
5G accoppiati applicano anche la patch al controllo dell'ID modello di LK e al percorso di programmazione dell'ID modello.
[!IMPORTANT] Nelle build firmware stock elencate di seguito, G780F, N980F, N981B, N985F e N986B non possono usare il metodo UH-to-BOOTLOADER per entrare in EUB. I loro bootloader LK chiamano
Check_signinfo(), che confronta ilBinaryNameincorporato nell'immagine (uh.bin) con il nome file previsto della partizione BOOTLOADER (sboot.bin). La mancata corrispondenza produceBinaryname has changed (uh.bin) -> (sboot.bin)e rifiuta il flash.Usa i punti di test specifici del modello appropriati per entrare in EUB su questi dispositivi invece del metodo UH.
| Flag modello | Artefatto runtime | Firmware runtime | ID modello | EVT | Rollback | Testato | Metodo UH / ingresso EUB |
|---|---|---|---|---|---|---|---|
G780F | G780F | G780FXXSOFYJ1 | 0x154 | 11 | 24 | ❌ | Bloccato — usa i punti di test |
G980F | G981B | G981BXXSNHYB1 | 0x143 | 11 | 23 | ✅ | Nessun blocco del nome file |
G981B | G981B | G981BXXSNHYB1 | 0x13D | 11 | 23 | ❌ | Nessun blocco del nome file |
G985F | G986B | G986BXXSNHYB1 | 0x142 | 11 | 23 | ✅ | Nessun blocco del nome file |
G986B | G986B | G986BXXSNHYB1 | 0x13C | 11 | 23 | ✅ | Nessun blocco del nome file |
G988B | G988B | G988BXXSNHYB1 | 0x13E | 11 | 23 | ❌ | Nessun blocco del nome file |
N980F | N981B | N981BXXSIHYH3 | 0x153 | 11 | 18 | ❌ | Bloccato — usa i punti di test |
N981B | N981B | N981BXXSIHYH3 | 0x14E | 11 | 18 | ❌ | Bloccato — usa i punti di test |
N985F | N986B | N986BXXSIHYH3 | 0x152 | 11 | 18 | ❌ | Bloccato — usa i punti di test |
N986B | N986B | N986BXXSIHYH3 | 0x14D | 11 | 18 | ❌ | Bloccato — usa i punti di test |
Tutti e dieci i flag dei modelli Galaxy S20, S20 FE e Note20 supportati hanno un profilo di avvio KVM
opt-in solo da CLI. Compila un branch
del kernel Exynos 990
il cui nome contiene kvm, e aggiungi --kvm al comando specifico del modello, ad esempio:
python3 exploit/exploit.py --build-sboot --model G985F --no-fuse --kvm
Questo profilo rimuove il percorso LK H-Arx/UH, chiede a EL3 di entrare nel kernel a EL2 e applica la corrispondente tabella di patch del monitor EL3 decifrata/ri-cifrata. Rimane non disponibile per le modalità di flash del bootloader stock/manomesso. Il centro di controllo web non ha intenzionalmente alcun controllo KVM. Con il kernel corrispondente e WindowsInQemu, Windows può essere eseguito in QEMU sul telefono a piena velocità tramite KVM.
Non trattare ogni modalità come un'unica sequenza di installazione numerata. Scegli un obiettivo:
| Obiettivo | Percorso |
|---|---|
| Installare una ROM personalizzata firmata | Modello/setup esatto → EUB → catena temporanea --signed --no-fuse → flash dell'output firmato completo della ROM → primo avvio UFS |
| Testare l'exploit | Opzionale --prepare --no-fuse → EUB → --signed --no-fuse → stop |
| Sviluppare la catena di avvio (solo CLI) | Test temporaneo no-fuse → build → flash di SBoot/TZSW/LDFW generati → UFS |
| Dump / ripristino | Usa il suo flusso di lavoro separato e i controlli sullo stato dei fuse |
--prepare esegue una preparazione solo host: sostituisce le immagini di lavoro generate e compila e firma i file locali,
senza aprire USB. Non è una dry-run di sola lettura né un predecessore obbligatorio: --signed ripete il preflight.
Il comando Heimdall in tre parti generato è uno strumento di sviluppo della catena di avvio; non è un flash di ROM personalizzata.
Leggi USER_GUIDE.md e scegli il suo flusso di lavoro corrispondente prima di toccare un dispositivo. Include il passaggio completo della ROM più le regole di ripristino per stato non fused, fused e incerto.
Il server HTTP dell'interfaccia browser utilizza la libreria standard di Python e richiama la CLI esistente exploit/exploit.py.
La validazione del key-bundle e l'esecuzione degli strumenti richiedono anche i pacchetti in requirements.txt. Lo sviluppo della catena di avvio e
il suo comando Heimdall in tre parti generato rimangono strumenti solo da terminale.
Avvialo dalla radice del repository:
python3 exynos990_control_center.py
Il launcher si associa a 127.0.0.1, genera un nuovo token di accesso, stampa l'URL locale completo e lo apre nel browser
predefinito. Usa --no-browser quando il browser non deve essere aperto automaticamente:
python3 exynos990_control_center.py --no-browser
L'interfaccia utente fornisce:
Mostra inoltre un avviso KVM per Exynos 990 solo da CLI, ma deliberatamente non espone un'opzione KVM né inoltra --kvm a
qualsiasi azione web.