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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-14378-DevKit-Pro-Auth-Bypass — Defensive Analyse, Patch-Aufschlüsselung und Erkennungsscanner für CVE-2026-14378 (WordPress DevKit Pro Plugin <= 2.3.0). | Kitploit
Tools/GitHubGitHub/anoxhunterdump-ctrl/cve-2026-14378-devkit-pro-auth-bypass
DefensivwerkzeugeSchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsAuthentifizierung

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
GitHub
anoxhunterdump-ctrl/cve-2026-14378-devkit-pro-auth-bypass

CVE-2026-14378-DevKit-Pro-Auth-Bypass

Defensive Analyse, Patch-Aufschlüsselung und Erkennungsscanner für CVE-2026-14378 (WordPress DevKit Pro Plugin <= 2.3.0).

Repository anzeigen
vor 1 TagNoch nicht geprüft
Teilen

CVE-2026-14378 — Unauthentifizierte Authentifizierungsumgehung im WordPress DevKit Pro Plugin

Severity: Critical Vulnerability: CWE-287 Affected: <= 2.3.0 Patched: 2.3.1 License: MIT


Inhaltsverzeichnis

  1. Zusammenfassung
  2. Aufschlüsselung der Schwachstelle
  3. Grundursache & Technische Analyse
  4. Vollständige Angriffsdurchführung (Schritt für Schritt)
    • Schritt 0: Umgebungseinrichtung
    • Schritt 1: Bestätigen, dass das Plugin installiert und verwundbar ist
    • Schritt 2: Das Nonce-Leck auslösen
    • Schritt 3: Die Revert-Switch-Anfrage übermitteln
    • Schritt 4: Administratorzugriff verifizieren
  5. Erkennung mit dem Scanner
    • Ausgabe im verwundbaren Zustand
    • Ausgabe im gepatchten Zustand
  6. Bedrohungsmodellierung — Wie dies missbraucht werden kann
  7. Patch-Diff-Analyse
  8. Indikatoren für Kompromittierung (IoCs)
  9. Behebung
  10. Scanner-Nutzung
  11. Haftungsausschluss

Zusammenfassung

CVE-2026-14378 ist eine kritische Unauthentifizierte Authentifizierungsumgehung (CVSS 9.8) im DevKit Pro-Plugin für WordPress, die alle Versionen bis einschließlich 2.3.0 betrifft.

Das Plugin enthält einen Entwickler-Benutzerwechselmechanismus. Wenn ein Administrator zu einem anderen Benutzerkonto „wechselt", speichert es die ID des Administrators in einem Cookie namens original_user_id. Der Fehler: Das Plugin rendert ein „Zurückwechseln"-HTML-Formular auf jeder Seite, sobald dieses Cookie vorhanden ist — auch für unauthentifizierte Besucher, die das Cookie manuell setzen. Schlimmer noch: Der Nonce-Verifizierungsschritt prüft die Administratorberechtigung des Cookie-Benutzers, nicht die Sitzung des Aufrufers — daher gibt der Server bereitwillig ein authentifiziertes Administrator-Sitzungscookie an jeden heraus, der den richtigen POST sendet.

Nettoergebnis: Null Anmeldedaten erforderlich für die vollständige Übernahme der WordPress-Administration.


Aufschlüsselung der Schwachstelle

AttributDetails
CVE-IDCVE-2026-14378
SchwachstellenklasseUnsachgemäße Authentifizierung (CWE-287)
CVSS v3.1 Score9.8 (Kritisch)
CVSS-VektorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Betroffene SoftwareDevKit Pro (dplugins) WordPress-Plugin
Verwundbare Versionen<= 2.3.0
Gepatchte Version2.3.1
Veröffentlichungsdatum02. Okt. 2026

Grundursache & Technische Analyse

1. Wie die Benutzerwechsel-Funktion funktioniert (Normaler Ablauf)

DevKit Pro enthält einen Entwickler-Helfer, der es Website-Administratoren ermöglicht, in andere Benutzerkonten zu „wechseln", um Berechtigungen zu testen. Wenn der Administrator den Wechsel verwendet:

  1. Das Plugin speichert die ID des Administrators in einem Cookie: Set-Cookie: original_user_id=1
  2. Bei nachfolgenden Seitenaufrufen prüft das Plugin isset($_COOKIE['original_user_id'])
  3. Wenn das Cookie existiert, rendert es eine „Zurückwechseln"-Symbolleiste in wp_footer() mit einem versteckten POST-Formular, das ein frisches Nonce enthält
  4. Wenn der Administrator auf „Zurückwechseln" klickt, sendet das Formular einen POST an admin-post.php?action=revert_switch
  5. Das Plugin verifiziert das Nonce und ruft dann wp_set_auth_cookie($user_id) auf, um die ursprüngliche Sitzung wiederherzustellen

2. Der verwundbare Codepfad

Der wp_footer-Hook-Handler:

// DevKit Pro <= 2.3.0 — render_switch_back_bar()
public function render_switch_back_bar() {
    // FLAW: Only checks if cookie exists — no session validation!
    if ( isset( $_COOKIE['original_user_id'] ) ) {
        $user_id = (int) $_COOKIE['original_user_id'];
        $nonce   = wp_create_nonce( 'devkit_revert_switch_' . $user_id );
        echo '<div id="devkit-pro-switch-back" class="devkit-switch-bar" style="display:none;">';
        echo '  <form id="devkit-revert-form" action="' . admin_url('admin-post.php') . '" method="POST">';
        echo '    <input type="hidden" name="action" value="revert_switch" />';
        echo '    <input type="hidden" name="_wpnonce" value="' . $nonce . '" />';
        echo '    <input type="hidden" name="target_user_id" value="' . $user_id . '" />';
        echo '  </form>';
        echo '</div>';
        echo '<!-- DevKit Pro 2.3.0 Switch Component Active -->';
    }
}

Der POST-Handler, der die Formularübermittlung verarbeitet:

// DevKit Pro <= 2.3.0 — handle_revert_switch()
public function handle_revert_switch() {
    $user_id = (int) $_POST['target_user_id'];
    $nonce   = sanitize_text_field( $_POST['_wpnonce'] );

    if ( ! $this->verify_nonce_and_capability( $user_id, $nonce ) ) {
        wp_die( 'Unauthorized' );
    }

    wp_set_current_user( $user_id );
    wp_set_auth_cookie( $user_id );        // <-- Grants authenticated session to caller
    wp_redirect( admin_url() );
    exit;
}

private function verify_nonce_and_capability( $user_id, $nonce ) {
    if ( ! wp_verify_nonce( $nonce, 'devkit_revert_switch_' . $user_id ) ) {
        return false;
    }
    // CRITICAL FLAW: Checks the cookie user's capability, not the caller's!
    return user_can( $user_id, 'manage_options' );
}

3. Warum die Prüfung fehlschlägt

user_can( $user_id, 'manage_options' ) beantwortet die Frage: „Hat Benutzer #1 die Berechtigung manage_options?“
Die Antwort für Benutzer #1 (den zuerst erstellten WordPress-Administrator) ist immer true.

Es sollte stattdessen fragen: „Hat die Person, die diese HTTP-Anfrage stellt, die Berechtigung manage_options?“
Die korrekte Prüfung ist current_user_can('manage_options'), die für einen nicht authentifizierten Besucher false zurückgeben würde.


Vollständige Angriffsanalyse (Schritt für Schritt)

Diese gesamte Analyse wurde durchgeführt und verifiziert gegen eine live laufende WordPress-Instanz in einem lokalen Podman-Container (http://localhost:8080) mit aktivem DevKit Pro 2.3.0.

Schritt 0: Einrichtung der Umgebung

Um dies lokal zu reproduzieren, benötigen Sie:

  • Docker oder Podman
  • WordPress (eine beliebige aktuelle Version)
  • DevKit Pro Plugin Version <= 2.3.0 installiert und aktiviert

Schnelle Podman-Lab-Einrichtung:

# Start MariaDB
podman run -d --name wp-db \
  -e MYSQL_ROOT_PASSWORD=rootpass \
  -e MYSQL_DATABASE=wordpress \
  -e MYSQL_USER=wpuser \
  -e MYSQL_PASSWORD=wppass \
  mariadb:10.6

# Start WordPress
podman run -d --name wp-app \
  -p 8080:80 \
  --link wp-db:mysql \
  -e WORDPRESS_DB_HOST=mysql \
  -e WORDPRESS_DB_NAME=wordpress \
  -e WORDPRESS_DB_USER=wpuser \
  -e WORDPRESS_DB_PASSWORD=wppass \
  wordpress:latest
Tool herunterladen