CVE-2026-26980 PoC di SQL Injection su Ghost CMS
Questo repository contiene uno strumento proof-of-concept basato su Go per dimostrare e validare la vulnerabilità di SQL injection nell'API Content di Ghost CMS descritta da CVE-2026-26980. L'implementazione si basa sul flusso di exploit implementato nel file sorgente Go principale ed è destinata esclusivamente a ricerche e test di sicurezza autorizzati.
Panoramica
Il PoC prende di mira le istanze di Ghost CMS affette da una vulnerabilità di ordinamento del filtro slug dell'API Content. Può:
- verificare se un target è vulnerabile a SQL injection
- recuperare una chiave API Content quando possibile
- enumerare un anchor slug
- estrarre un indirizzo email di amministratore
- opzionalmente estrarre l'hash della password dell'amministratore e il segreto API dell'amministratore
- validare se un target patchato non è più vulnerabile
Versioni Affette
L'implementazione è specificamente riferita al seguente contesto di advisory:
- Versioni affette: Ghost CMS 3.24.0 fino a 6.19.0
- Versione corretta: Ghost CMS 6.19.1
- CVE: CVE-2026-26980
- CWE: CWE-89
- Advisory: GHSA-w52v-v783-gw97
Struttura del Progetto
- ghost_sqli_cms.go: implementazione Go principale dell'exploit e della CLI
- ghost_sqli/: asset di supporto o risorse correlate
- images/: screenshot o materiale di riferimento
- go.mod: definizione del modulo Go
Requisiti
- Go 1.26.4 o una versione più recente compatibile
- Accesso di rete all'istanza Ghost CMS target
- Un target che sia vulnerabile o destinato al test di validazione
Clonazione e Installazione
git clone https://github.com/gagaltotal/CVE-2026-26980-Ghost-CMS-Api
cd CVE-2026-26980-Ghost-CMS-Api
go mod init CVE-2026-26980-Ghost-CMS-Api
go mod tidy
Compilazione dello Strumento
Dalla radice del progetto, compila il binario con:
go build -o ghost-sqli ghost_sqli_cms.go
OR
go run ghost_sqli_cms.go
Utilizzo

Utilizzo dell'Help

./ghost-sqli --help
Sfruttamento base

./ghost-sqli --url http://target.example:2368
Estrazione hash password e segreto API
./ghost-sqli --url http://target.example:2368 --extract-password --extract-api-key
Validazione correzione istanza patchata
./ghost-sqli --url http://target.example:2368 --validate-fix
Utilizzo di una chiave API Content esistente
./ghost-sqli --url http://target.example:2368 --content-key "your-content-api-key"
Abilitazione output verboso
./ghost-sqli --url http://target.example:2368 -v
Opzioni della Riga di Comando
- --url : URL di base del target Ghost CMS (obbligatorio)
- --validate-fix: test se il target non è più vulnerabile
- --extract-password: estrae anche l'hash bcrypt dell'amministratore
- --extract-api-key: estrae anche il segreto API dell'amministratore
- --content-key : salta la configurazione e usa una chiave API Content fornita
- -v, --verbose: abilita output di debug
- -h, --help: mostra informazioni di aiuto
Avviso di Sicurezza
Questo progetto è fornito esclusivamente per scopi educativi e di valutazione della sicurezza autorizzati. Utilizzalo solo contro sistemi di tua proprietà, che sei autorizzato a testare, o che stai valutando in un ambiente controllato. L'accesso non autorizzato o lo sfruttamento di sistemi di terze parti è illegale e può violare le leggi applicabili.
Note
- Lo strumento esegue fasi di configurazione e autenticazione contro l'istanza target quando possibile.
- Alcuni target potrebbero richiedere regolazioni manuali in base alla versione di Ghost CMS e alla configurazione di deployment.
- I risultati possono variare in base all'ambiente target, al comportamento delle risposte e al fatto che la vulnerabilità sia stata corretta.
Riferimenti
- Avvisi di sicurezza di Ghost CMS
- CVE-2026-26980
- GHSA-w52v-v783-gw97