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-80099 — Newfold-Plugins (wp-module-data <= 2.9.7) nicht authentifiziert | Kitploit
Tools/GitHubGitHub/wayang1337/cve-2026-80099
SchwachstellenscannerPasswortangriffeExploitationScripting & AutomatisierungWebanwendungs-ExploitationInformationsbeschaffungPost-ExploitationWebsicherheitPenetrationstestsRemote-Access-Tool
GitHub
134vor 20 TagenNoch nicht geprüft
wayang1337/cve-2026-80099

CVE-2026-80099

Newfold-Plugins (wp-module-data <= 2.9.7) nicht authentifiziert

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-80099 PoC

Unauthentifizierte Authentifizierungsumgehung und RCE-Exploit gegen Newfold-WordPress-Plugins, die wp-module-data bündeln.

Übersicht

Dieses Tool nutzt einen Fehler bei der Bearer-Token-Validierung im Newfold-Modul wp-module-data aus. Wenn eine WordPress-Seite, die ein betroffenes Newfold-Plugin verwendet, nicht mit Hiive verbunden ist, gibt HiiveConnection::get_auth_token() false zurück. Dieser Wert wird durch strrev() geleitet und anschließend gehasht, wodurch das geheime Salt auf die öffentliche Konstante reduziert wird:

sha256("") = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Da jede andere Komponente der gehashten Nutzlast (HTTP-Methode, Anfrage-URL, Anfrage-Body, Zeitstempel) vollständig vom Angreifer kontrolliert wird, kann ein gültiges Bearer-Token offline berechnet werden. Der anfällige Filter läuft auf rest_authentication_errors, sodass ein gefälschtes Token den Aufrufer als ersten Administrator für die gesamte WordPress-REST-API authentifiziert, einschließlich der Core-Routen. Dieser Zugriff wird dann zu vollständiger Remote-Code-Ausführung ausgenutzt.

Betroffene Software

Plugin / ModulBetroffene VersionenGepatcht
wp-module-data<= 2.9.72.9.8
bluehost-wordpress-plugin<= 4.19.0n/a
hostgator<= 3.2.0n/a
web<= 2.3.5n/a
crazy-domains<= 2.5.2n/a

Die Erkennung deckt auch die WordPress.org-Plugin-Slugs wp-plugin-web und crazy_blog ab.

Ursache

In vendor/newfold-labs/wp-module-data/includes/Data.php:

public function authenticate( $errors ) {        // hooked on rest_authentication_errors
    ...
    $data = array(
        'method'    => $_SERVER['REQUEST_METHOD'],
        'url'       => Url::getCurrentUrl(),
        'body'      => file_get_contents( 'php://input' ),
        'timestamp' => dataGet( getallheaders(), 'X-Timestamp' ),
    );
    $hash     = hash( 'sha256', wp_json_encode( $data ) );
    $salt     = hash( 'sha256', strrev( HiiveConnection::get_auth_token() ) );
    $is_valid = hash( 'sha256', $hash . $salt ) === $token;

    if ( $is_valid ) {
        ... wp_set_current_user( <first administrator> ); return true;
    }
}

Auf einer nicht verbundenen Seite wird strrev(false) zu strrev('') gezwungen, was '' ergibt, und das Salt wird zum wohlbekannten Hash der leeren Zeichenkette. Jede andere Eingabe in die Hash-Kette wird vom Angreifer kontrolliert, sodass das Token vollständig vorhersagbar ist.

Funktionen

  • Erkennung betroffener Newfold-Plugins durch Fingerprinting statischer Assets
  • Erkennung der Modulanwesenheit über die REST-Route newfold-data/v1/verify/<hex>
  • Offline-Fälschung eines gültigen Bearer-Tokens (kein Secret erforderlich)
  • Verifizierung der Umgehung durch Aufruf von GET /wp/v2/users/me und Prüfung der Rollen
  • Vollständige RCE-Kette mit mehreren Fallback-Techniken:
    1. Theme-Editor-Schreibzugriff auf 404.php / index.php
    2. Plugin-Upload via ZIP
    3. Editor-Schreibzugriff in ein inaktives Plugin, REST-Aktivierung und Wiederherstellung
  • Optionaler persistenter .fm.php-Dateimanager, der im Webroot abgelegt wird
  • Massen-Scan-Modus mit Threaded Workern, Resume-Unterstützung und gedrosseltem Fortschritt
  • Zwei Authentifizierungspfade für die Post-Exploitation: Newfold-SSO-Magic-Link-Login (umgeht ModSecurity-Blockaden auf wp-login.php) und klassischer wp-login.php-Formular-Login

Anforderungen

  • Python 3.7+
  • requests
  • urllib3 (optional, nur zur Unterdrückung von TLS-Warnungen)

Abhängigkeiten installieren:

pip install requests urllib3

Verwendung

Einzelziel-Prüfung

Read-only-Erkennung und Umgehungsverifizierung:

python3 exploit.py -u https://target.example

Einzelziel-RCE

Vollständige Kette zu einer persistenten Shell:

python3 exploit.py -u https://target.example --mode rce

Das Passwort des ersten Administrators zurücksetzen, anstatt einen neuen zu erstellen:

python3 exploit.py -u https://target.example --mode rce --takeover

Massen-Scan

Nur-Prüfung über eine Liste von Zielen:

python3 exploit.py --list targets.txt

Vollständige Kette auf jedem anfälligen Host (erfordert explizite Zustimmung):

python3 exploit.py --list targets.txt --mode rce --apply-rce

Vorfiltern mit statischen Asset-Probes, bevor die REST-API berührt wird:

python3 exploit.py --list targets.txt --brand-filter

Nach den ersten N anfälligen Hosts stoppen:

python3 exploit.py --list targets.txt --stop-after 5

Einen vorherigen Lauf fortsetzen:

python3 exploit.py --list targets.txt --resume

Optionen

FlagBeschreibung
-u, --urlBasis-URL eines einzelnen Ziels
--listDatei mit einer Ziel-URL pro Zeile
--modecheck (nur Erkennung) oder rce (vollständige Kette); Standard check
--takeoverPasswort des ersten Admins zurücksetzen, anstatt einen neuen Admin zu erstellen
--outputJSONL-Ausgabepfad für den Massenmodus; Standard cve_2026_80099_results.jsonl
--vuln-listReine URL-Liste anfälliger Hosts; Standard vuln.txt
--threadsAnzahl der Worker für den Massenmodus; Standard 20
--timeoutAnfrage-Timeout in Sekunden; Standard 15
--fast-timeoutTimeout für schnelle Probes in Sekunden; Standard 6
--retriesWiederholungsversuche pro Anfrage; Standard 1
--proxyHTTP(S)-Proxy-URL
--all-outAlle Massen-Zeilen schreiben, nicht nur anfällige
--apply-rceDie RCE-Kette auf anfälligen Hosts im Massenmodus ausführen
--brand-filterVorfiltern mit statischen Newfold-Plugin-Assets
--stop-afterMassen-Scan nach N anfälligen Hosts stoppen; 0 bedeutet alle ausführen
--quietFortschrittszeilen pro Ziel deaktivieren
--resumeAn die Ausgabe anhängen und bereits vorhandene Ziele überspringen

Details zur RCE-Kette

Sobald ein Administrator-Kontext bestätigt ist, versucht das Tool drei Techniken in dieser Reihenfolge:

  1. Theme-Editor-Shell — schreibt eine kleine PHP-Nutzlast in die 404.php oder index.php des aktiven Themes. Die Nutzlast wird ausgelöst, indem eine beliebige nicht existierende URL angefordert wird (für 404.php) oder das Site-Root (für index.php).

  2. Plugin-Upload-Shell — erstellt ein ZIP mit einem minimalen Plugin, lädt es über wp-admin/update.php?action=upload-plugin hoch und greift direkt auf die Plugin-PHP-Datei zu.

  3. Inaktive-Plugin-Editor-Kette — listet Plugins über die REST-API auf, wählt ein inaktives aus, schreibt eine Cmd-Shell in dessen Hauptdatei über plugin-editor.php, aktiviert es über PUT /wp/v2/plugins/<slug>, löst die Shell auf einer beliebigen Frontend-URL aus, legt .fm.php im Webroot ab, deaktiviert dann das Plugin und stellt die Originaldatei wieder her. Dieser Pfad ist darauf ausgelegt, Hosts zu überleben, die den Theme-Editor blockieren, den direkten Zugriff auf wp-content blockieren oder Änderungen durch Loopback-Health-Checks zurücksetzen.

Bei Erfolg wird ein persistenter .fm.php-Dateimanager im Webroot abgelegt. Er unterstützt:

  • ?cmd=<shell command>
  • ?cat=<path> zum Lesen einer Datei
  • ?put=<path>&data=<base64> zum Schreiben einer Datei
  • ?ls=<path> zum Auflisten eines Verzeichnisses

Ausgabedateien

  • cve_2026_80099_results.jsonl — JSONL-Datensätze für jedes gescannte Ziel. Anfällige Einträge enthalten vuln: true, admin, admin_id und, wenn RCE erfolgreich ist, shell (die URL des abgelegten Dateimanagers oder der Shell).
  • vuln.txt — eine reine URL pro Zeile für jedes anfällige oder geshellte Ziel.

Hinweise

Tool herunterladen