
حزمة إعادة إنتاج ونص PoC لـ CVE-2026-87796، وهو RCE عبر رفع ملفات عشوائية دون مصادقة في Multi Uploader for Gravity Forms <= 1.1.9، مع مختبر Docker loopback.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-87796
Multi Uploader for Gravity Forms 1.1.9 — sh1zen
إن إضافة Multi Uploader for Gravity Forms الخاصة بـ WordPress معرّضة لثغرة رفع ملفات عشوائية (Arbitrary File Upload) في جميع الإصدارات حتى الإصدار 1.1.9 ضمناً عبر الدالة move_file. ويعود ذلك إلى عدم كفاية التحقق من نوع الملف أثناء معالجة الرفع المُجزّأ (chunked upload). وهذا يجعل من الممكن للمهاجمين غير المصادق عليهم رفع ملفات عشوائية على خادم الموقع المتأثر، مما قد يجعل تنفيذ التعليمات البرمجية عن بُعد (remote code execution) ممكناً.
| CVE | CVE-2026-87796 · CVE.org |
| CWE | CWE-434 |
| CVSS | حرج: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| المنتج | Multi Uploader for Gravity Forms |
| المتأثر | جميع الإصدارات حتى 1.1.9 (ضمناً) |
| المُرقّع | تصحيح المورّد — انظر المراجع |
| المصادقة | لا شيء (انظر خريطة المصدر) |
| المختبر | 127.0.0.1 فقط · حزمة إفصاح للمورّد/العميل، وليست أداة فحص |
يذكر الإشعار الدالة move_file. وهي دالة PHP خاصة، وليست HTTP action=. أما HTTP action فهي gfmu-plupload-submit. والتمييز بين المُجزّأ وغير المُجزّأ هو REQUEST[chunks]>1. أسماء دوال PHP ليست admin-ajax action=.
POST/wp-admin/admin-ajax.phpPOST /wp-admin/admin-ajax.php action=gfmu-plupload-submit (nopriv, GFMUAddon.class.php:125)GFMUHandlePluploader::plupload_ajax_submit nonce gfmu-upload-nonce (GFMUHandlePluploader.class.php:257-262)GFMU_FileUploader::handleUpload chunks>1 (GFMU_FileUploader.php:231-319)move_file copy then unlink tmp (GFMU_FileUploader.php:319, 545-560)validateUploadedFile only AFTER the file is already at $target (322) — unlike non-chunked which validates first (375)GET /wp-content/uploads/gfmu-uploads-tmp/<name> for POC_WITNESS_87796طلب HTTP GET للملف المرفوع يُرجع السلسلة الفريدة POC_WITNESS_87796. نتيجة JSON result=success بالإضافة إلى ذلك GET تعني النجاح. أما HTML القالب، أو admin-ajax 0، أو Server error. فشل nonce ليس هو المقصود.
افعل هذا أولاً: طبّق تصحيح المورّد الخاص بـ Multi Uploader for Gravity Forms. انظر المراجع.
تحقق بعد الترقية
CVE-2026-87796-Abraxas-Labs.py مقابل البناء المُرقّع: يجب ألا يظهر الشاهد المُعيّن.إذا لم تستطع التحديث فوراً
استهدف فقط http://127.0.0.1:8088 (أو loopback الذي ربطته). لا توجّه هذا السكربت إلى الإنترنت.
python3 CVE-2026-87796-Abraxas-Labs.py
النجاح هو الشاهد أعلاه في جسم الاستجابة. أما 200 HTML العام فليس هو المقصود.
حزمة loopback المستخدمة لإعادة الإنتاج. صور رسمية ما لم يكن هناك Dockerfile في هذا المجلد يبني من المصدر.
cd lab
docker compose up --force-recreate
اربط شجرة المنتج المتأثر بجانب Compose إذا كان ملف YAML يربط دليلاً محلياً (plugin zip / source tag من جدول الإصدارات). لا تنشر شيئاً باستثناء 127.0.0.1.
plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/GFMUAddon.class.php#L125
plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L319
plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L322
plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L560
www.wordfence.com/threat-intel/vulnerabilities/id/47337bc1-fa3d-470c-9524-859295261017?source=cve
دليل الإضافات: gf-multi-uploader
متصفح Trac: plugins.trac.wordpress.org/gf-multi-uploader
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# CVE-2026-87796 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-87796`
- CWE: CWE-434
- published: 2026-09-17T05:17:02.123
## NVD description
The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.1.9 via the move_file function. This is due to insufficient file type validation during chunked upload handling. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site's server which may make remote code execution possible.
## MITRE description
The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.1.9 via the move_file function. This is due to insufficient file type validation during chunked upload handling. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site's server which may make remote code execution possible.
## Affected
- sh1zen Multi Uploader for Gravity Forms 0 affected
## References (JSON sources only)
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/GFMUAddon.class.php#L125
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMUHandlePluploader.class.php#L257
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L319
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L322
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L560
- https://www.wordfence.com/threat-intel/vulnerabilities/id/47337bc1-fa3d-470c-9524-859295261017?source=cve
- https://github.com/advisories/GHSA-h7vp-g8q2-89c8
- https://nvd.nist.gov/vuln/detail/CVE-2026-87796
## GitHub advisory
The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload...
The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.1.9 via the move_file function. This is due to insufficient file type validation during chunked upload handling. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site's server which may make remote code execution possible.
هذه الحزمة مخصّصة للمورّد، ومالك الموقع، والمختبرات المُرخّصة. يتواصل السكربت مع 127.0.0.1. استخدامه ضد أنظمة لا تملكها غير مُصرّح به من Abraxas Labs. لا ضمان.