CVE-2026-26980 Ghost CMS SQL Injection PoC
Ce dépôt contient un outil de preuve de concept basé sur Go pour démontrer et valider la vulnérabilité d'injection SQL dans l'API de contenu de Ghost CMS décrite par CVE-2026-26980. L'implémentation est basée sur le flux d'exploitation implémenté dans le fichier source Go principal et est destinée uniquement à la recherche en sécurité et aux tests autorisés.
Vue d'ensemble
Le PoC cible les instances Ghost CMS affectées par une vulnérabilité d'ordonnancement du filtre de slug de l'API de contenu. Il peut :
- vérifier si une cible est vulnérable à l'injection SQL
- récupérer une clé d'API de contenu lorsque cela est possible
- énumérer une ancre de slug
- extraire une adresse e-mail d'administrateur
- extraire facultativement le hash du mot de passe administrateur et le secret de l'API administrateur
- valider si une cible corrigée n'est plus vulnérable
Versions affectées
L'implémentation est spécifiquement référencée par rapport au contexte d'avis suivant :
- Versions affectées : Ghost CMS 3.24.0 jusqu'à 6.19.0
- Version corrigée : Ghost CMS 6.19.1
- CVE : CVE-2026-26980
- CWE : CWE-89
- Avis : GHSA-w52v-v783-gw97
Structure du projet
- ghost_sqli_cms.go : implémentation Go principale de l'exploit et de la CLI
- ghost_sqli/ : actifs de support ou ressources associées
- images/ : captures d'écran ou matériel de référence
- go.mod : définition du module Go
Prérequis
- Go 1.26.4 ou une version plus récente compatible
- Accès réseau à l'instance Ghost CMS cible
- Une cible qui est soit vulnérable, soit destinée aux tests de validation
Cloner et installer
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
Compilation de l'outil
Depuis la racine du projet, compilez le binaire avec :
go build -o ghost-sqli ghost_sqli_cms.go
OU
go run ghost_sqli_cms.go
Utilisation

Utiliser l'aide

./ghost-sqli --help
Exploitation de base

./ghost-sqli --url http://target.example:2368
./ghost-sqli --url http://target.example:2368 --extract-password --extract-api-key
Valider qu'une instance corrigée est réparée
./ghost-sqli --url http://target.example:2368 --validate-fix
Utiliser une clé d'API de contenu existante
./ghost-sqli --url http://target.example:2368 --content-key "your-content-api-key"
Activer la sortie détaillée
./ghost-sqli --url http://target.example:2368 -v
Options de ligne de commande
- --url : URL de base de la cible Ghost CMS (requis)
- --validate-fix : tester si la cible n'est plus vulnérable
- --extract-password : extraire également le hash bcrypt de l'administrateur
- --extract-api-key : extraire également le secret de l'API administrateur
- --content-key <CLÉ> : ignorer la configuration et utiliser une clé d'API de contenu fournie
- -v, --verbose : activer la sortie de débogage
- -h, --help : afficher les informations d'aide
Avis de sécurité
Ce projet est fourni à des fins éducatives et d'évaluation de sécurité autorisée uniquement. Utilisez-le uniquement contre des systèmes que vous possédez, que vous êtes autorisé à tester, ou que vous évaluez dans un environnement contrôlé. L'accès non autorisé ou l'exploitation de systèmes tiers est illégal et peut violer les lois applicables.
Remarques
- L'outil effectue des étapes de configuration et d'authentification contre l'instance cible lorsque cela est possible.
- Certaines cibles peuvent nécessiter un ajustement manuel en fonction de la version de Ghost CMS et de la configuration de déploiement.
- Les résultats peuvent varier en fonction de l'environnement cible, du comportement des réponses et selon que la vulnérabilité est corrigée ou non.
Références
- Avis de sécurité Ghost CMS
- CVE-2026-26980
- GHSA-w52v-v783-gw97