Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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-78159 — Proof-of-concept exploit per CVE-2026-78159, un RCE non autenticato nel plugin WordPress The Events Calendar tramite il sink delle classi widget parse_array. | Kitploit
Strumenti/GitHubGitHub/abraxas/cve-2026-78159
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingStrumento di Accesso Remoto
GitHubabraxas/cve-2026-78159

CVE-2026-78159

Proof-of-concept exploit per CVE-2026-78159, un RCE non autenticato nel plugin WordPress The Events Calendar tramite il sink delle classi widget parse_array.

Vedi Repository
8 ore faNon ancora revisionato

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

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

Il plugin The Events Calendar per WordPress è vulnerabile a Remote Code Execution in tutte le versioni fino alla 6.17.3 inclusa, tramite la funzione parse_array. Ciò è dovuto a una validazione insufficiente della mappa 'classes' del widget, che consente a un payload di tipo plain-array di aggirare il controllo sugli oggetti is_safe_widget_instance() e raggiungere il sink di invocazione callable in Element_Classes::parse_array(). Questo rende possibile per attaccanti non autenticati eseguire codice sul server. Lo sfruttamento richiede che il sito preso di mira abbia i commenti abilitati sui post tribe_events e che sia stato inviato almeno un commento contenente un blocco wp:legacy-widget appositamente creato, poiché la catena di attacco viene attivata quando do_blocks() elabora l'HTML del singolo evento, inclusa l'area dei commenti.

CVECVE-2026-78159 · CVE.org
CWECWE-94
CVSSCritical: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProductThe Events Calendar
Affectedtutte le versioni fino alla 6.17.3 (inclusa)
Patched6.17.3.1 e successive
Authnessuna (vedi source map)
LicenseGNU Affero GPL v3.0
Labsolo 127.0.0.1 · pacchetto di divulgazione per vendor/client, non uno scanner

Advisory (dalla source map)

parse_array è il sink, non un'azione ajax=. L'HTTP è POST /wp-comments-post.php poi GET dell'URL di anteprima della moderazione. L'idBase del widget è tribe-widget-events-list, non events-list.


Entry

  • Method: POST
  • Path: /wp-comments-post.php
  • Router: wp-comments-post.php non autenticato. TEC V2 single-event bufferizza comments_template() poi do_blocks(). render_block_data rielabora le istanze tribe-widget-*. the_widget('tribe-widget-events-list') con featured_events_only true svuota la lista così components/messages.php esegue tec_classes($classes). Element_Classes::parse_array invoca valori string-callable. Canary del lab poc_witness_78159, non system() e non wp_update_user.
  • Notes: CVE-2026-78159 CWE-94: The Events Calendar 6.17.3. idBase DEVE essere tribe-widget-events-list (PREFISSO tribe-widget- + slug events-list). Un hash fittizio va bene. Il primo GET /event/lab-event/ è solo raccolta. SUCCESSO solo se POCWitness78159 appare dopo il redirect del commento.

Catena di chiamate

  • GET /event/lab-event/ harvest 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 includes unapproved=COMMENT_ID&moderation-hash=wp_hash(comment_date_gmt)
  • GET that Location: comments_template includes the unapproved comment
  • 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 rejects objects only, wp_hash the plain array
  • render_block_core_legacy_widget the_widget tribe-widget-events-list
  • Widget_List setup_arguments array_merge instance (classes survives; setup_template_vars does not overwrite it)
  • empty featured list -> widget-events-list.php else branch components/messages.php
  • tec_classes($classes) -> Element_Classes::parse_array string key + is_callable value -> poc_witness_78159($results) echoes POCWitness78159

Precondizioni del lab

  • The Events Calendar 6.17.3 attivo
  • tema classico (Twenty Twenty-One). I temi a blocchi saltano Template_Bootstrap::filter_template_include tramite tec_is_full_site_editor(), quindi do_blocks non vede mai l'HTML dei commenti
  • tribe_events_calendar_options showComments=yes così tribe_events supporta i commenti
  • post tribe_events pubblicato lab-event con comment_status=open
  • comment_registration=0, i primi commenti trattenuti (unapproved + moderation-hash)
  • funzione mu-plugin poc_witness_78159 che fa echo di POCWitness78159 (canary del lab, non una gadget chain)
  • viste/widget V2 abilitati (sempre true nella 6.17.3)

Witness

Il corpo HTTP del GET di anteprima della moderazione contiene POCWitness78159. Un HTML di evento generico senza quella stringa non è quello giusto. debug.log può anche aggiungere POCWitness78159.

Non successo

  • HTML di evento 200 generico senza POCWitness78159
  • wp-comments-post.php 200/302 senza seguire Location
  • commento 409/duplicato senza il blocco
  • 403/404 senza il witness
  • reverse shell o connessione in uscita
  • payload system()/exec()/wp_update_user di reset password

Patch / remediation

Fai questo per primo: Aggiorna The Events Calendar alla 6.17.3.1 o successiva (Wordfence raccomanda la 6.17.4.1 per coprire anche CVE-2026-78006).

Verifica dopo l'aggiornamento

  • Riesegui CVE-2026-78159-Abraxas-Labs.py contro la build corretta: il witness mappato non deve apparire.
  • Conferma l'advisory del vendor / il changeset nell'albero distribuito (vedi riferimenti).
  • Una firma WAF è un ritardo, non una patch.

Se non puoi aggiornare immediatamente

  • Disabilita o isola il componente interessato.
  • Cerca la condizione del witness in produzione (nuovi utenti privilegiati, file inattesi, righe iniettate — qualunque cosa indichi la mappa di questa CVE).

Riproduzione (lab autorizzato)

Prendi di mira solo http://127.0.0.1:8088 (o il loopback su cui hai fatto il bind). Non puntare questo script verso internet.

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

Il successo è il witness sopra nel corpo della risposta. Un HTML 200 generico non è quello giusto.


Immagini del lab

Stack loopback usato per la riproduzione. Immagini ufficiali a meno che un Dockerfile in questa cartella non venga compilato dai sorgenti.

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

Collega l'albero del prodotto vulnerabile accanto a Compose se lo YAML monta una directory locale (zip del plugin / tag sorgente dalla tabella delle versioni). Non pubblicare nulla tranne 127.0.0.1.


Riferimenti

  • 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

  • Directory dei plugin: the-events-calendar

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

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

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


Records (strutturati)

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.

Licenza

Questo pacchetto di divulgazione è rilasciato sotto la GNU Affero General Public License v3.0. Vedi LICENSE.


Disclaimer

Questo pacchetto è destinato al vendor, al proprietario del sito e ai lab autorizzati. Lo script comunica con 127.0.0.1. Usarlo contro sistemi di cui non sei proprietario non è autorizzato da Abraxas Labs. Nessuna garanzia.

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

Scarica lo strumento