
POC para CVE-2026-78006 The Events Calendar <= 6.17.4 - Injeção de Objeto PHP Não Autenticada para Execução Remota de Código
POC para CVE-2026-78006 The Events Calendar <= 6.17.4 - Injeção de Objeto PHP Não Autenticada para Execução Remota de Código
#CONTATO telegram para qualquer dúvida : @soldout0O
Se você aprecia meu trabalho, considere apoiar o projeto via USDT (TRC20): TQBA72kakjCZLnJt8fJYcD7dyQCEpzNtVN
The Events Calendar para WordPress contém uma vulnerabilidade de Injeção de Objeto PHP não autenticada que pode ser encadeada para Execução Remota de Código.
O caminho de código vulnerável envolve:
is_safe_widget_instance()enable_rendering_widget_copied()unserialize()do_blocks()Sob as condições documentadas, um atacante não autenticado pode entregar markup de bloco elaborado através de um comentário de evento e alcançar o caminho de desserialização vulnerável antes que a moderação de comentários ocorra.
A vulnerabilidade existe porque a proteção do plugin em torno de instâncias de widget é insuficiente.
O fluxo vulnerável pode ser resumido como:```text Unauthenticated Comment | v Pending Event Comment | v WordPress Moderation-Hash URL | v Unauthenticated Author Can View Own Pending Comment | v V2 Single-Event Template | v do_blocks() | v Injected Block Markup | v enable_rendering_widget_copied() | v Forged Integrity Attribute | v is_safe_widget_instance() | v PHP Magic Methods / Object Deserialization | v unserialize() | v PHP Object Injection | v Remote Code Execution
---
# Plugin Afetado
**Plugin:** The Events Calendar
**Vulnerabilidade:** Injeção de Objeto PHP Não Autenticada levando a
Execução Remota de Código
**Versões afetadas:** Todas as versões até e incluindo **6.17.4**,
de acordo com o aviso da Wordfence.
> [!IMPORTANT]
> O PoC de pesquisa atualmente publicado com este repositório identifica-se
> internamente como direcionado a `<= 6.17.2`.
>
> A faixa de versões indicada acima segue o aviso da Wordfence
> (`<= 6.17.4`). Sempre verifique a versão exata vulnerável/corrigida junto
> ao aviso do fornecedor antes de testar uma implantação.
---
# Causa Raiz
O comportamento vulnerável está associado à interação entre a
verificação de segurança do widget e o comportamento de desserialização de objetos do PHP.
As funções principais envolvidas são:```text
is_safe_widget_instance()
enable_rendering_widget_copied()
A verificação de segurança é insuficiente porque o PHP pode invocar métodos mágicos durante o seu comportamento de análise/desserialização antes que a validação de segurança pretendida forneça proteção efetiva.
A cadeia também depende de o plugin gerar um valor de integridade válido para a instância de widget fornecida.
Uma das características mais importantes desta vulnerabilidade é que o atacante não precisa de uma conta WordPress existente.
O caminho de ataque abusa da forma como o WordPress expõe o próprio comentário pendente de um usuário através de um URL de hash de moderação.
As condições relevantes são:```text Comments enabled + Comments visible on events + Attacker can submit an event comment + V2 single-event template active
Depois de enviar um comentário, o WordPress pode fornecer uma URL de
moderation-hash não autenticada que permite ao comentarista visualizar o seu próprio
comentário pendente.
Isto cria um mecanismo de entrega não autenticado para a marcação de bloco
manipulada.
---
# Explicação Técnica
## 1. Submissão de Comentário
O atacante submete um comentário associado a um evento.
O comentário não precisa de ser aprovado.
A propriedade importante é que o WordPress pode expor o comentário através
do mecanismo de moderation-hash.
---
## 2. Acesso por Moderation-Hash
O WordPress fornece ao comentarista uma URL que lhe permite
visualizar o seu próprio comentário pendente.
Isto significa que o atacante pode alcançar o caminho de renderização vulnerável sem
esperar pela moderação.
Conceptualmente:```text
POST Comment
|
v
Pending Comment
|
v
Moderation Hash
|
v
Unauthenticated Access
O template V2 de evento único do The Events Calendar processa o conteúdo do evento e o HTML relacionado a comentários.
O caminho de processamento relevante do WordPress eventualmente chega a:```text do_blocks()
Isso é importante porque a marcação de bloco incorporada no conteúdo renderizado
é interpretada como dados de bloco do WordPress.
---
## 4. Dados de Bloco Craftados
O PoC constrói um bloco de widget legado contendo uma instância de widget
serializada.
A implementação de pesquisa constrói o bloco usando uma instância serializada
codificada e um atributo de integridade.
O caminho vulnerável, em última análise, processa esses dados como uma instância de widget.
---
## 5. Bypass de Integridade
O comportamento `enable_rendering_widget_copied()` do plugin pode ser abusado
para produzir um atributo de integridade válido para os dados de widget
controlados pelo atacante.
Isso permite que a instância de widget maliciosa passe pela verificação de
integridade esperada e alcance o caminho de processamento vulnerável.
---
## 6. Manipulação Insegura de Objetos
A proteção vulnerável `is_safe_widget_instance()` é insuficiente
contra o objeto fornecido através da instância de widget craftada.
O comportamento de manipulação de objetos do PHP pode invocar métodos mágicos durante o
processo de desserialização.
O resultado é uma primitiva de Injeção de Objeto PHP explorável.
---
## 7. Cadeia de Gadgets
O PoC de pesquisa constrói estruturas de objetos do WordPress / The Events Calendar
que fornecem comportamento invocável durante a desserialização.
O PoC usa objetos orientados a callback e estruturas de classe serializadas
para construir o payload de pesquisa.
---
## 8. Execução de Código
O impacto final é a Execução Remota de Código.
O PoC contém um estágio de webshell de pesquisa e lógica de criação de
administrador.
Para verificação segura da vulnerabilidade, a fronteira de segurança importante já
está demonstrada pela execução bem-sucedida da cadeia de desserialização
vulnerável.
---
# Por que a Vulnerabilidade é Crítica
A combinação de:```text
Unauthenticated
+
Remote
+
PHP Object Injection
+
RCE
cria um caminho de ataque de alto impacto.
Um atacante não precisa de:
O principal pré-requisito ambiental é que o caminho vulnerável de renderização de evento/comentário seja acessível.
O repositório contém uma implementação de pesquisa em Python.
O PoC enviado é um executor assíncrono em torno da lógica de pesquisa original.
Ele utiliza:```text Python aiohttp rich
A implementação executa a cadeia de vulnerabilidades por meio de entrega e verificação de payload em estágios.
O código-fonte do PoC descreve sua arquitetura como:```text
payload building
|
v
stage 1
|
v
verification
|
v
stage 2
A implementação de pesquisa inclui funcionalidades para: