
تحليل فني ونشرة استشارية لثغرة CVE-2026-48908: رفع ملفات تعسّفي بدون مصادقة يؤدي إلى تنفيذ كود عن بُعد (RCE) في JoomShaper SP Page Builder.
تحليل تقني شامل لثغرة تنفيذ كود عن بُعد بدون مصادقة.
CVE-2026-48908 هي ثغرة أمنية حرجة تم اكتشافها في إضافة JoomShaper SP Page Builder لنظام Joomla. تكمن الثغرة في نقطة نهاية غير محمية تقبل عمليات رفع يقدمها المستخدم دون التحقق من تفويض المستخدم أو تقييد امتدادات الملفات بشكل فعّال.
يُمكّن استغلال هذه الثغرة المهاجمين عن بُعد بدون مصادقة من كتابة ملفات قابلة للتنفيذ في أدلة الويب العامة، مما يؤدي إلى اختراق كامل للخادم (تنفيذ كود عن بُعد).
| المعامل | التفاصيل |
|---|---|
| نوع الثغرة | رفع ملفات تعسفي بدون مصادقة (CWE-434) |
| درجة CVSS v3.1 | 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| مستوى التأثير | حرج (تنفيذ كود عن بُعد / استيلاء كامل على النظام) |
| متجه الوصول | شبكة / عن بُعد (لا تتطلب مصادقة) |
[!NOTE] هذا الاكتشاف للثغرة هو تتويج لـ6 إلى 7 أشهر من البحث الأمني المخصص، وتدقيق الكود المصدري، ورسم خرائط سلوك البروتوكول داخل إضافات أنظمة إدارة المحتوى.
timeline
title Disclosure Lifecycle
2026 Q1 : Source Code Auditing & Identification
: Edge-case Analysis & Flow Tracing
2026 Q2 : Proof-of-Concept Validation
: Responsible Vendor Disclosure
2026 Q3 : Patch Verification
: Public Advisory & CVE Registrationيوضح المخطط أدناه التدفق التشغيلي للخلل بدءًا من بدء الطلب وحتى التنفيذ:
sequenceDiagram
autonumber
actor Attacker as Remote Attacker
participant Endpoint as Upload Controller
participant Storage as Public Storage
participant Server as Web Server Process
Attacker->>Endpoint: POST request with malicious payload (No Auth)
Note over Endpoint: Missing Authorization Check<br/>& Loose MIME Validation
Endpoint->>Storage: Writes file to public path (/images/...)
Endpoint-->>Attacker: Returns success response & file path
Attacker->>Storage: GET request to uploaded file
Storage->>Server: Executes server-side code
Server-->>Attacker: Command execution output returnedنقطة نهاية المتحكم (Controller) التي تتعامل مع عمليات رفع الملفات المتعددة الأجزاء تفتقر إلى فحوصات صلاحيات صريحة (JFactory::getUser()->authorise()) ولا تتطلب رموز جلسة صالحة لمكافحة CSRF. وبالتالي، تصل طلبات HTTP غير المصادق عليها إلى منطق كتابة الملفات الأساسي.
يعتمد منطق الرفع على ترويسات يتم توفيرها من العميل أو فحوصات امتدادات متساهلة بدلاً من القوائم البيضاء الصارمة من جانب الخادم. وهذا يسمح بحفظ امتدادات البرامج النصية القابلة للتنفيذ في أدلة مهيأة للتنفيذ على الويب.
[!IMPORTANT] يجب على المسؤولين الذين يستخدمون الإصدارات المتأثرة التحديث إلى الإصدار المُصحح فورًا وتطبيق سياسات تنفيذ على مستوى الخادم.
# Block script execution in writable media directories
location ~* ^/images/.*\.php$ {
deny all;
return 403;
}
.htaccess# Disable PHP execution inside upload paths
<Directory "/var/www/html/images">
<FilesMatch "\.(php|phtml|php3|php4|php5|php7|phps)$">
Order Deny,Allow
Deny from all
</FilesMatch>
</Directory>
إخلاء مسؤولية: يُنشر هذا المستودع لأغراض تعليمية ودفاعية وتدقيق أمني فقط.