
إثبات مفهوم لاستغلال CVE-2026-1357، وهو رفع ملفات تعسفي غير مصادق عليه في إضافة WPvivid Backup & Migration لـ WordPress، مما يتيح تنفيذ الأكواد عن بُعد.
إن إضافة WPvivid Backup & Migration الخاصة بـ WordPress، والمخصصة للترحيل والنسخ الاحتياطي والتدريج، معرضة لثغرة رفع ملفات تعسفية غير مصادق عليها في الإصدارات حتى 0.9.123 وما يشملها. ويعود السبب إلى معالجة غير سليمة للأخطاء في عملية فك تشفير RSA بالإضافة إلى عدم تعقيم المسارات عند كتابة الملفات المرفوعة. عندما تفشل الإضافة في فك تشفير مفتاح الجلسة باستخدام openssl_private_decrypt()، فإنها لا تُنهي التنفيذ وبدلاً من ذلك تمرر القيمة المنطقية false إلى تهيئة تشفير AES في مكتبة phpseclib. تتعامل المكتبة مع هذه القيمة false كسلسلة من البايتات الصفرية، مما يسمح للمهاجم بتشفير حمولة خبيثة باستخدام مفتاح بايتات صفرية يمكن التنبؤ به. بالإضافة إلى ذلك، تقبل الإضافة أسماء الملفات من الحمولة المفكوكة دون تعقيم، مما يتيح اجتياز الدلائل للهروب من دليل النسخ الاحتياطي المحمي. وهذا يجعل من الممكن للمهاجمين غير المصادق عليهم رفع ملفات PHP تعسفية إلى أدلة يمكن الوصول إليها علنًا وتحقيق تنفيذ عن بُعد للكود عبر معامل wpvivid_action=send_to_site.
https://nvd.nist.gov/vuln/detail/CVE-2026-1357
نظّم مجلد مشروعك على النحو التالي:
.
├── docker-compose.yml
├── exploit.py
├── requirements.txt
├── vulnerable-plugin-folder/ # منطقة تدريج للإضافة
└── wp-content/ # بيانات WP الدائمة (يتم إنشاؤها بواسطة Docker)
نظرًا لأن الثغرة تم إصلاحها في الإصدارات الأحدث، يجب عليك تنزيل الإصدار 0.9.123 وتدريجه يدويًا. نفّذ هذه الأوامر من جذر مشروعك:
# تنزيل الإصدار المعرض للثغرة
wget https://downloads.wordpress.org/plugin/wpvivid-backuprestore.0.9.123.zip
# إنشاء دليل التدريج
mkdir vulnerable-plugin-folder
# استخراج الملفات ونقلها إلى مكانها
unzip wpvivid-backuprestore.0.9.123.zip
mv wpvivid-backuprestore/* vulnerable-plugin-folder/
rm -rf wpvivid-backuprestore wpvivid-backuprestore.0.9.123.zip
docker-compose up -d
http://localhost:8080 وأكمل عملية التثبيت./wp-admin).pip install -r requirements.txt
نفّذ السكربت ضد هدف مختبرك:
python3 exploit.py localhost:8080 --command "id"
في حال نجاح العملية، سيُخرج السكربت نتائج الأمر (مثل uid=33(www-data) gid=33(www-data)). يمكنك أيضًا التحقق من وجود القشرة في مختبرك:
docker exec wpvivid-lab ls /var/www/html/wp-content/uploads/
هذه الأداة مخصصة للأغراض التعليمية ولأبحاث الأمن المصرح بها فقط. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.