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
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
GitHubwayang1337/cve-2026-80099
vor 7h 14mNoch nicht geprüft

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:

root@kitploit:~
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 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.

ersten Administrator

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:

root@kitploit:~
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:

root@kitploit:~
pip install requests urllib3

Verwendung

Einzelziel-Prüfung

Read-only-Erkennung und Umgehungsverifizierung:

root@kitploit:~
python3 exploit.py -u https://target.example

Einzelziel-RCE

Vollständige Kette zu einer persistenten Shell:

root@kitploit:~
python3 exploit.py -u https://target.example --mode rce

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

root@kitploit:~
python3 exploit.py -u https://target.example --mode rce --takeover

Massen-Scan

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

root@kitploit:~
python3 exploit.py --list targets.txt

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

root@kitploit:~
python3 exploit.py --list targets.txt --mode rce --apply-rce

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

root@kitploit:~
python3 exploit.py --list targets.txt --brand-filter

Nach den ersten N anfälligen Hosts stoppen:

root@kitploit:~
python3 exploit.py --list targets.txt --stop-after 5

Einen vorherigen Lauf fortsetzen:

root@kitploit:~
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

  • Das Tool ignoriert System- und Umgebungs-Proxys über trust_env = False, um zu vermeiden, dass Massen-Scans über lokale Proxys geleakt werden.
  • Das Bearer-Token wird gegen die exakte URL berechnet, die der Server sehen wird (Schema, Host und Request-URI), passend zum Verhalten von Url::getCurrentUrl(). Die Anfrage wird zuerst vorbereitet und das Token aus der vorbereiteten URL abgeleitet.
  • Der PHP-kompatible JSON-Encoder repliziert das Standardverhalten von json_encode, einschließlich escapter Forward-Slashes, \uXXXX-Nicht-ASCII-Escaping und UTF-16-Surrogatpaaren für astrale Zeichen, sodass die gehashte Nutzlast byte-für-byte übereinstimmt.
  • Eine fehlgeschlagene Probe, die 401 zurückgibt, bedeutet typischerweise, dass das Ziel gepatcht ist (Modul >= 2.9.8), die Seite mit Hiive verbunden ist (echtes Token, unbekanntes Salt) oder ein Intermediär den Authorization-Header entfernt. 403 deutet typischerweise darauf hin, dass ein anderer rest_authentication_errors-Filter eingegriffen hat.

Haftungsausschluss

Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und Forschung bereitgestellt. Verwenden Sie es ausschließlich gegen Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Unbefugter Zugriff auf Computersysteme ist in den meisten Rechtsordnungen illegal und kann zu schweren zivil- und strafrechtlichen Konsequenzen führen. Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch diese Software verursacht werden.

Tool herunterladen