Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-78159 — Proof-of-Concept-Exploit für CVE-2026-78159, eine nicht authentifizierte RCE im WordPress-Plugin The Events Calendar über die parse_array-Widget-Klassen-Sink. | Kitploit
Tools/GitHubGitHub/abraxas/cve-2026-78159
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsRemote-Access-Tool
GitHubabraxas/cve-2026-78159

CVE-2026-78159

Proof-of-Concept-Exploit für CVE-2026-78159, eine nicht authentifizierte RCE im WordPress-Plugin The Events Calendar über die parse_array-Widget-Klassen-Sink.

Repository anzeigen
vor 8h 1mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Das The Events Calendar-Plugin für WordPress ist in allen Versionen bis einschließlich 6.17.3 über die Funktion parse_array für Remote Code Execution anfällig. Ursache ist eine unzureichende Validierung der Widget-classes-Map, wodurch eine Plain-Array-Payload die Objektprüfung is_safe_widget_instance() umgehen und die Callable-Invocation-Sink in Element_Classes::parse_array() erreichen kann. Dadurch ist es unauthentifizierten Angreifern möglich, Code auf dem Server auszuführen. Für die Ausnutzung muss die Zielseite Kommentare für tribe_events-Beiträge aktiviert haben und mindestens ein Kommentar mit einem manipulierten wp:legacy-widget-Block eingereicht worden sein, da die Angriffskette ausgelöst wird, wenn do_blocks() das Single-Event-HTML einschließlich des Kommentarbereichs verarbeitet.

CVECVE-2026-78159 · CVE.org
CWECWE-94
CVSSKritisch: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProduktThe Events Calendar
Betroffenalle Versionen bis 6.17.3 (einschließlich)
Gepatcht6.17.3.1 und später
Authkeine (siehe Source Map)
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1 · Vendor/Client-Disclosure-Pack, kein Scanner

Advisory (aus der Source Map)

parse_array ist die Sink, keine ajax action=. HTTP ist POST /wp-comments-post.php, dann GET der Moderation-Preview-URL. Widget idBase ist tribe-widget-events-list, nicht events-list.


Einstieg

  • Methode: POST
  • Pfad: /wp-comments-post.php
  • Router: Unauth wp-comments-post.php. TEC V2 Single-Event puffert comments_template() und dann do_blocks(). render_block_data rehasht tribe-widget-*-Instanzen. the_widget('tribe-widget-events-list') mit featured_events_only true leert die Liste, sodass components/messages.php tec_classes($classes) ausführt. Element_Classes::parse_array ruft String-Callable-Werte auf. Lab-Canary poc_witness_78159, nicht system() und nicht wp_update_user.
  • Hinweise: CVE-2026-78159 CWE-94: The Events Calendar 6.17.3. idBase MUSS tribe-widget-events-list sein (PREFIX tribe-widget- + Slug events-list). Dummy-Hash ist in Ordnung. Das erste GET /event/lab-event/ dient nur dem Harvesting. ERFOLG nur, wenn POCWitness78159 nach der Kommentar-Weiterleitung erscheint.

Aufrufkette

  • 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

Lab-Voraussetzungen

  • The Events Calendar 6.17.3 aktiv
  • klassisches Theme (Twenty Twenty-One). Block-Themes überspringen Template_Bootstrap::filter_template_include über tec_is_full_site_editor(), sodass do_blocks niemals Kommentar-HTML sieht
  • tribe_events_calendar_options showComments=yes, damit tribe_events Kommentare unterstützt
  • veröffentlichter tribe_events-Beitrag lab-event mit comment_status=open
  • comment_registration=0, erste Kommentare zurückgehalten (unapproved + moderation-hash)
  • mu-plugin-Funktion poc_witness_78159 gibt POCWitness78159 aus (Lab-Canary, keine Gadget-Chain)
  • V2-Views/Widgets aktiviert (in 6.17.3 immer true)

Witness

Der HTTP-Body des Moderation-Preview-GET enthält POCWitness78159. Generisches Event-HTML ohne diesen String ist es nicht. debug.log kann ebenfalls POCWitness78159 anhängen.

Kein Erfolg

  • generisches 200-Event-HTML ohne POCWitness78159
  • wp-comments-post.php 200/302 ohne Folgen der Location
  • Kommentar 409/duplicate ohne den Block
  • 403/404 ohne den Witness
  • Reverse Shell oder ausgehende Verbindung
  • system()/exec()/wp_update_user-Passwort-Reset-Payload

Patch / Behebung

Zuerst dies tun: Aktualisieren Sie The Events Calendar auf 6.17.3.1 oder neuer (Wordfence empfiehlt 6.17.4.1, um auch CVE-2026-78006 abzudecken).

Nach dem Upgrade überprüfen

  • Führen Sie CVE-2026-78159-Abraxas-Labs.py erneut gegen den gepatchten Build aus: Der zugeordnete Witness darf nicht erscheinen.
  • Bestätigen Sie das Vendor-Advisory / Changeset im bereitgestellten Tree (siehe Referenzen).
  • Eine WAF-Signatur ist eine Verzögerung, kein Patch.

Wenn Sie nicht sofort aktualisieren können

  • Deaktivieren oder isolieren Sie die betroffene Komponente.
  • Suchen Sie in der Produktion nach der Witness-Bedingung (neue privilegierte Benutzer, unerwartete Dateien, injizierte Zeilen — was auch immer die Map dieser CVE benennt).

Reproduktion (autorisiertes Lab)

Zielen Sie nur auf http://127.0.0.1:8088 (oder das Loopback, an das Sie gebunden haben). Richten Sie dieses Skript nicht auf das Internet.

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

Erfolg ist der Witness oben im Response-Body. Generisches 200-HTML ist es nicht.


Lab-Images

Loopback-Stack zur Reproduktion. Offizielle Images, sofern nicht ein Dockerfile in diesem Ordner aus dem Quellcode baut.

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

Binden Sie den verwundbaren Produkt-Tree neben Compose ein, wenn die YAML ein lokales Verzeichnis mountet (Plugin-Zip / Source-Tag aus der Versionstabelle). Veröffentlichen Sie nichts außer 127.0.0.1.


Referenzen

  • 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

  • Plugin-Verzeichnis: the-events-calendar

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

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

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


Datensätze (strukturiert)

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.

Lizenz

Dieses Disclosure-Pack ist unter der GNU Affero General Public License v3.0 lizenziert. Siehe LICENSE.


Haftungsausschluss

Dieses Pack ist für den Vendor, den Seitenbetreiber und lizenzierte Labs bestimmt. Das Skript kommuniziert mit 127.0.0.1. Die Verwendung gegen Systeme, die Ihnen nicht gehören, ist von Abraxas Labs nicht autorisiert. Keine Gewährleistung.

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

Tool herunterladen