Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
Tools/GitHubGitHub/hassham1/cve-2026-89274-wp-recipe-maker-poc
SchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationSicherheitsvirtualisierungWebsicherheitPenetrationstestsLabs & Praxis
GitHubhassham1/cve-2026-89274-wp-recipe-maker-poc

CVE-2026-89274-wp-recipe-maker-poc

Docker-Validierungslabor und Python-PoC für CVE-2026-89274, der beliebige Shortcode-Ausführung in WP Recipe Maker <= 10.8.1 über rating-comment reviewBody nachweist.

Repository anzeigen
vor 1 TagNoch 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

CVE-2026-89274 - WP Recipe Maker Arbitrary Shortcode Execution Validation Lab

Sicherheitsforschungsmaterial zur Reproduktion und Validierung von CVE-2026-89274: WP Recipe Maker <= 10.8.1 führt beliebige registrierte WordPress-Shortcodes innerhalb von Rezept-JSON-LD-Metadaten aus, die über einen genehmigten Bewertungskommentar eingeschleust werden.

  • Betroffen: WP Recipe Maker <= 10.8.1
  • Behoben: 10.8.2 (do_shortcode ersetzt durch ein reines Strip-do_shortcode_safe)
  • CVSS 3.1: 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) - CWE-94
  • Auth: keine, aber der Bewertungskommentar des Angreifers muss die Kommentar-Genehmigungsschwelle der Website passieren (Auto-Genehmigung oder Moderator-Aktion), bevor der injizierte Shortcode bei Seitenaufrufen ausgeführt wird

Nur auf Systemen verwenden, die Sie besitzen oder für deren Test Sie ausdrücklich autorisiert sind. Der PoC veröffentlicht einen Bewertungskommentar, der einen im Lab registrierten Marker-Shortcode enthält. Es wird kein destruktiver Shortcode verwendet und nichts auf die Festplatte geschrieben.

Urteil

Status: im bereitgestellten Lab nachgewiesen.

WP Recipe Maker 10.8.1 (WordPress 7.1.2, Standard-Rezeptkarten-Modell):

root@kitploit:~
comment posted : "[cve89274]" + wprm-comment-rating=5 on the recipe's parent post
result         : JSON-LD on the rendered page contains
                 "reviewBody":"CVE89274-SHORTCODE-FIRED"
                 (marker shortcode executed server-side at render time)
10.8.2         : shortcode stripped, marker absent (patched negative control)

Dies demonstriert die serverseitige Ausführung eines beliebigen registrierten Shortcodes mit Ausgabe, die in die Seitenmetadaten eingebettet und jedem Besucher offengelegt wird. Es demonstriert kein RCE; die Auswirkung hängt davon ab, welche Shortcodes auf dem Ziel registriert sind (Post-/Meta- Offenlegung, plugin-bereitgestellte Shortcodes mit Nebenwirkungen).

Ursache (verifiziert gegen den 10.8.2-Fix)

WPRM_Metadata::sanitize_metadata() bereinigt rekursiv jedes skalare Feld des strukturierten Metadaten-Arrays des Rezepts:

root@kitploit:~
// includes/public/class-wprm-metadata.php:553, WP Recipe Maker 10.8.1
$sanitized = strip_shortcodes( wp_strip_all_tags( do_shortcode( $metadata ) ) );

// 10.8.2
$sanitized = strip_shortcodes( wp_strip_all_tags( WPRM_Instacart::do_shortcode_safe( $metadata ) ) );

do_shortcode() führt den Shortcode zuerst aus; der strip_shortcodes()- Wrapper entfernt nur Tags aus der bereits ausgeführten Ausgabe. Eines der Felder, reviewBody, wird wörtlich aus comment_content genehmigter Kommentare befüllt, die einen wprm-comment-rating-Meta-Wert tragen (class-wprm-metadata.php:1016), abgefragt gegen den Parent-Post des Rezepts (post_id => $recipe->parent_post_id(), Zeile 973) - der Beitrag oder die Seite, in die die Rezeptkarte eingebettet ist.

Der 10.8.2-Ersatz, WPRM_Instacart::do_shortcode_safe() (class-wprm-instacart.php:501), behält nur den inneren Inhalt und führt nichts aus.

Ausnutzungsablauf (wie validiert)

  1. Ziel ist der Parent-Post eines Rezepts (der Beitrag/die Seite, die [wprm-recipe] einbettet).
  2. Senden Sie einen Kommentar an /wp-comments-post.php mit dem Shortcode im Text und wprm-comment-rating=5.
  3. Der Kommentar passiert die Genehmigungsschwelle der Website (das Lab genehmigt automatisch; bei echten Zielen: Auto-Genehmigung oder ein Moderator).
  4. Beim nächsten und jedem weiteren Rendern der Parent-Seite nimmt der Metadaten-Builder den Kommentar in das JSON-LD-review-Array auf, und sanitize_metadata() führt den Shortcode aus. Seine Ausgabe ersetzt den Kommentartext innerhalb von reviewBody, sichtbar für jeden Besucher.

Schnellstart

Voraussetzungen: Docker mit Compose v2, Python 3.10+ auf dem Host.

root@kitploit:~
./lab verify

Baut das 10.8.1-Lab, verlangt, dass der Marker ausgelöst wird, baut dann das 10.8.2-Lab und verlangt dessen Abwesenheit. Alles mit ./lab reset entfernen.

Erwartete Nachweise

Verwundbare Kontrolle:

root@kitploit:~
[!!!] SHORTCODE EXECUTION CONFIRMED
  evidence: 'CVE89274-SHORTCODE-FIRED' present in the rendered recipe page
  context : ..."reviewBody":"CVE89274-SHORTCODE-FIRED","author":...
RESULT: VULNERABLE CONTROL CONFIRMED

Gepatchte Kontrolle:

root@kitploit:~
[=] shortcode text present but NOT executed: output was stripped
RESULT: PATCHED CONTROL CONFIRMED

Ein Marker auf der Seite, der nur innerhalb des angezeigten Kommentars (Rohtext) erscheint, wird nicht als Beweis akzeptiert; der Marker muss als ausgeführte Ausgabe in den Metadaten erscheinen.

Manueller Lab-Lebenszyklus

root@kitploit:~
./lab start vulnerable   # 10.8.1 lab on http://127.0.0.1:9482
./lab test               # assert marker fires
./lab start patched      # 10.8.2 lab
./lab test               # assert absence
./lab status
./lab reset

PoC manuell ausführen (Loopback-Standard; autorisierte externe Ziele benötigen die explizite Überschreibung):

root@kitploit:~
python3 poc/poc_cve_2026_89274.py --url http://127.0.0.1:9482 --post-id 5
python3 poc/poc_cve_2026_89274.py --url https://target.example \
  --allow-authorized-non-loopback [--insecure]

Das nuclei-Template (nuclei/cve-2026-89274.yaml) ist nur ein Versions-Screen (readme.txt stable tag <= 10.8.1). Die Verhaltenskette erfordert das Absenden eines Kommentars plus einen Genehmigungsübergang, was sich in nuclei nicht praktikabel ausdrücken lässt; der Python-PoC führt den vollständigen Ablauf durch.

Betroffene und getestete Versionen

VersionBewertung
WP Recipe Maker 10.8.1Shortcode-Ausführung Ende-zu-Ende reproduziert
WP Recipe Maker 10.8.2Gepatchte Negativkontrolle reproduziert
WP Recipe Maker <= 10.8.0Laut Advisory betroffen; nicht einzeln getestet

Repository-Struktur

root@kitploit:~
.
├── .github/workflows/validate.yml
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── docker-compose.yml
├── lab
├── nuclei/
│   └── cve-2026-89274.yaml
└── poc/
    └── poc_cve_2026_89274.py

Nicht eingecheckt: assets/ (Plugin-Zips), .lab-state, __pycache__/.

Validierungsgrenzen

BehauptungStatus
Shortcode-Ausführung über Bewertungskommentar reviewBodyNachgewiesen (10.8.1)
Ausführungsausgabe im gerenderten JSON-LD offengelegtNachgewiesen
Gepatchte Negativkontrolle (10.8.2)Nachgewiesen
Standardkonfiguration (privater Rezept-CPT + Parent-Post)Nachgewiesen (dies ist die Lab-Topologie)
Öffentliche Rezept-Post-Type-KonfigurationNicht getestet
WPRMs eigener Rating-REST-Endpunkt als alternativer EinstiegNicht getestet
Auswirkung über die Ausgabe registrierter Shortcodes hinaus (RCE)Nicht behauptet

Referenzen

  • Wordfence: CVE-2026-89274
  • NVD-Eintrag
  • WP Recipe Maker Plugin

Sicherheitsgrenze

Führen Sie dieses Repository nur auf Systemen aus, die Sie besitzen oder für deren Test Sie ausdrücklich autorisiert sind. Der Lab-Treiber lehnt andere Varianten als vulnerable/patched ab, der PoC lehnt Nicht-Loopback-Ziele ab, sofern nicht --allow-authorized-non-loopback angegeben wird, und der Compose-Port ist an 127.0.0.1 gebunden.

Siehe SECURITY.md für den Umgang mit Offenlegungen. Dieses Repository enthält keine Produktionsziele, Kundendaten, Zugriffstoken oder Nachweise aus realen Systemen.

Lizenz

MIT - siehe LICENSE.

Tool herunterladen