Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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
Ferramentas/GitHubGitHub/abraxas/cve-2026-78159
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoFerramenta de Acesso Remoto
GitHubabraxas/cve-2026-78159

CVE-2026-78159

Proof-of-concept de exploit para CVE-2026-78159, um RCE não autenticado no plugin The Events Calendar para WordPress através do sink parse_array das classes de widget.

Ver Repositório
há 8h 1mAinda não revisado

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

Abraxas Labs — CVE-2026-78159

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-78159

CVE-2026-78159

The Events Calendar 6.17.3 — stellarwp

O plugin The Events Calendar para WordPress é vulnerável a Execução Remota de Código em todas as versões até, e incluindo, a 6.17.3 através da função parse_array. Isso se deve à validação insuficiente do mapa 'classes' do widget, permitindo que um payload de array simples contorne a verificação de objeto is_safe_widget_instance() e alcance o sink de invocação de callable em Element_Classes::parse_array(). Isso torna possível que atacantes não autenticados executem código no servidor. A exploração exige que o site alvo tenha comentários habilitados em posts tribe_events e que pelo menos um comentário contendo um bloco wp:legacy-widget manipulado tenha sido enviado, pois a cadeia de ataque é acionada quando do_blocks() processa o HTML do evento único, incluindo a área de comentários.

CVECVE-2026-78159 · CVE.org
CWECWE-94
CVSSCrítico: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProdutoThe Events Calendar
Afetadotodas as versões até 6.17.3 (inclusive)
Corrigido6.17.3.1 e posteriores
Autenticaçãonenhuma (ver mapa de origem)
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1 · pacote de divulgação para fornecedor/cliente, não é um scanner

Aviso (do mapa de origem)

parse_array é o sink, não uma ação ajax=. O HTTP é POST /wp-comments-post.php e depois GET da URL de pré-visualização de moderação. O idBase do widget é tribe-widget-events-list, não events-list.


Entrada

  • Método: POST
  • Caminho: /wp-comments-post.php
  • Roteador: wp-comments-post.php não autenticado. O evento único do TEC V2 faz buffer de comments_template() e depois do_blocks(). render_block_data refaz o hash das instâncias tribe-widget-*. the_widget('tribe-widget-events-list') com featured_events_only true esvazia a lista, então components/messages.php executa tec_classes($classes). Element_Classes::parse_array invoca valores string-callable. Canário do lab poc_witness_78159, não system() e não wp_update_user.
  • Notas: CVE-2026-78159 CWE-94: The Events Calendar 6.17.3. O idBase DEVE ser tribe-widget-events-list (PREFIXO tribe-widget- + slug events-list). Hash fictício serve. O primeiro GET /event/lab-event/ é apenas coleta. SUCESSO somente se POCWitness78159 aparecer após o redirecionamento do comentário.

Cadeia de chamadas

  • GET /event/lab-event/ coleta comment_post_ID
  • POST /wp-comments-post.php comment=<!-- wp:legacy-widget {idBase tribe-widget-events-list, instance.encoded php-serialize-base64, instance.hash 0} /-->
  • 302 Location inclui unapproved=COMMENT_ID&moderation-hash=wp_hash(comment_date_gmt)
  • GET nesse Location: comments_template inclui o comentário não aprovado
  • Template_Bootstrap::get_v1_single_event_template_html do_blocks($html)
  • Service_Provider::enable_rendering_widget_copied (render_block_data) unserialize allowed_classes false, is_safe_widget_instance rejeita apenas objetos, wp_hash do array simples
  • render_block_core_legacy_widget the_widget tribe-widget-events-list
  • Widget_List setup_arguments array_merge instance (classes sobrevive; setup_template_vars não o sobrescreve)
  • lista featured vazia -> widget-events-list.php ramo else components/messages.php
  • tec_classes($classes) -> Element_Classes::parse_array chave string + valor is_callable -> poc_witness_78159($results) ecoa POCWitness78159

Pré-condições do lab

  • The Events Calendar 6.17.3 ativo
  • tema clássico (Twenty Twenty-One). Temas de bloco ignoram Template_Bootstrap::filter_template_include via tec_is_full_site_editor(), então do_blocks nunca vê o HTML do comentário
  • tribe_events_calendar_options showComments=yes para que tribe_events suporte comentários
  • post tribe_events publicado lab-event com comment_status=open
  • comment_registration=0, primeiros comentários retidos (unapproved + moderation-hash)
  • função mu-plugin poc_witness_78159 ecoa POCWitness78159 (canário do lab, não uma gadget chain)
  • views/widgets V2 habilitados (sempre true na 6.17.3)

Testemunho

O corpo HTTP do GET de pré-visualização de moderação contém POCWitness78159. HTML genérico de evento sem essa string não conta. debug.log também pode acrescentar POCWitness78159.

Não é sucesso

  • HTML genérico de evento 200 sem POCWitness78159
  • wp-comments-post.php 200/302 sem seguir o Location
  • comentário 409/duplicado sem o bloco
  • 403/404 sem o testemunho
  • reverse shell ou conexão de saída
  • payload de redefinição de senha system()/exec()/wp_update_user

Correção / remediação

Faça isto primeiro: Atualize o The Events Calendar para 6.17.3.1 ou mais recente (a Wordfence recomenda 6.17.4.1 para também cobrir o CVE-2026-78006).

Verifique após a atualização

  • Execute novamente CVE-2026-78159-Abraxas-Labs.py contra a build corrigida: o testemunho mapeado não deve aparecer.
  • Confirme o aviso do fornecedor / changeset na árvore implantada (ver referências).
  • Uma assinatura de WAF é atraso, não uma correção.

Se não puder atualizar imediatamente

  • Desative ou isole o componente afetado.
  • Procure a condição de testemunho em produção (novos usuários privilegiados, arquivos inesperados, linhas injetadas — o que o mapa deste CVE nomear).

Reprodução (lab autorizado)

Alvo apenas http://127.0.0.1:8088 (ou o loopback que você vinculou). Não aponte este script para a internet.

root@kitploit:~
python3 CVE-2026-78159-Abraxas-Labs.py

Sucesso é o testemunho acima no corpo da resposta. HTML genérico 200 não conta.


Imagens do lab

Stack de loopback usada para reproduzir. Imagens oficiais, a menos que um Dockerfile nesta pasta faça build a partir do código-fonte.

  • lab/docker-compose.yml
  • lab/docker-compose.override.yml
  • lab/Dockerfile
root@kitploit:~
cd lab
docker compose up --force-recreate

Vincule a árvore do produto vulnerável ao lado do Compose se o YAML montar um diretório local (zip do plugin / tag de origem da tabela de versões). Não publique nada exceto 127.0.0.1.


Referências

  • CVE-2026-78159 · NVD

  • CVE-2026-78159 · CVE.org

  • plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/common/src/Tribe/Utils/Element_Classes.php#L211

  • plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/Tribe/Views/V2/Template_Bootstrap.php#L214

  • plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/Tribe/Views/V2/Widgets/Service_Provider.php#L279

  • plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/views/v2/components/messages.php#L30

  • plugins.trac.wordpress.org/changeset?reponame=&old=3667866%40the-events-calendar&new=3667866%40the-events-calendar

  • plugins.trac.wordpress.org/changeset?reponame=&old=3667867%40the-events-calendar&new=3667867%40the-events-calendar

  • www.wordfence.com/threat-intel/vulnerabilities/id/cc2ccfeb-6df6-4fee-96a5-94f8dd131f7c?source=cve

  • github.com/advisories/GHSA-9c57-9fxg-8x9j

  • nvd.nist.gov/vuln/detail/CVE-2026-78159

  • Diretório de plugins: the-events-calendar

  • Navegador Trac: plugins.trac.wordpress.org/the-events-calendar

  • Tags SVN: plugins.svn.wordpress.org/the-events-calendar

  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null


Registros (estruturados)

root@kitploit:~
# CVE-2026-78159  (structured records)

- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-78159`
- CWE: CWE-94
- published: 2026-09-12T08:16:24.377

## NVD description

The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 6.17.3 via the parse_array function. This is due to insufficient validation of the widget 'classes' map, allowing a plain-array payload to bypass the is_safe_widget_instance() object check and reach the callable-invocation sink in Element_Classes::parse_array(). This makes it possible for unauthenticated attackers to execute code on the server. Exploitation requires that the targeted site has comments enabled on tribe_events posts and that at least one comment containing a crafted wp:legacy-widget block has been submitted, as the attack chain is triggered when do_blocks() processes the single-event HTML including the comment area.

## MITRE description

The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 6.17.3 via the parse_array function. This is due to insufficient validation of the widget 'classes' map, allowing a plain-array payload to bypass the is_safe_widget_instance() object check and reach the callable-invocation sink in Element_Classes::parse_array(). This makes it possible for unauthenticated attackers to execute code on the server. Exploitation requires that the targeted site has comments enabled on tribe_events posts and that at least one comment containing a crafted wp:legacy-widget block has been submitted, as the attack chain is triggered when do_blocks() processes the single-event HTML including the comment area.

## Affected

- stellarwp The Events Calendar 0 affected

## References (JSON sources only)

- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/common/src/Tribe/Utils/Element_Classes.php#L211
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/Tribe/Views/V2/Template_Bootstrap.php#L214
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/Tribe/Views/V2/Widgets/Service_Provider.php#L279
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/views/v2/components/messages.php#L30
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3667866%40the-events-calendar&new=3667866%40the-events-calendar
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3667867%40the-events-calendar&new=3667867%40the-events-calendar
- https://www.wordfence.com/threat-intel/vulnerabilities/id/cc2ccfeb-6df6-4fee-96a5-94f8dd131f7c?source=cve
- https://github.com/advisories/GHSA-9c57-9fxg-8x9j
- https://nvd.nist.gov/vuln/detail/CVE-2026-78159

## GitHub advisory

The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all...

The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 6.17.3 via the parse_array function. This is due to insufficient validation of the widget 'classes' map, allowing a plain-array payload to bypass the is_safe_widget_instance() object check and reach the callable-invocation sink in Element_Classes::parse_array(). This makes it possible for unauthenticated attackers to execute code on the server. Exploitation requires that the targeted site has comments enabled on tribe_events posts and that at least one comment containing a crafted wp:legacy-widget block has been submitted, as the attack chain is triggered when do_blocks() processes the single-event HTML including the comment area.

Licença

Este pacote de divulgação é licenciado sob a GNU Affero General Public License v3.0. Ver LICENSE.


Isenção de responsabilidade

Este pacote é para o fornecedor, o proprietário do site e labs licenciados. O script se comunica com 127.0.0.1. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantia.

abraxaslabs.tech · github.com/abraxas · @abraxas_null

Baixar ferramenta