CVE-2026-4406
Gravity Forms <= 2.9.30 - ثغرة برمجة نصية عبر المواقع (XSS) منعكسة عبر معامل 'form_ids'
- تم النشر
- 07/04/2026
- محدث
- 08/04/2026
- تخصيص CNA
- Wordfence
- الأدلة المرصودة
- 25/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:Nمنخفض · الثلاثين يومًا القادمة
- المئوية
- 29.3%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
The Gravity Forms plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the `form_ids` parameter in the `gform_get_config` AJAX action in all versions up to, and including, 2.9.30. This is due to the `GFCommon::send_json()` method outputting JSON-encoded data wrapped in HTML comment delimiters using `echo` and `wp_die()`, which serves the response with a `Content-Type: text/html` header instead of `application/json`. The `wp_json_encode()` function does not HTML-encode angle brackets within JSON string values, allowing injected HTML/script tags in `form_ids` array values to be parsed and executed by the browser. The required `config_nonce` is generated with `wp_create_nonce('gform_config_ajax')` and is publicly embedded on every page that renders a Gravity Forms form, making it identical for all unauthenticated visitors within the same 12-hour nonce tick. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link. This vulnerability cannot be exploited against users who are authenticated on the target system, but could be used to alter the target page. إضافة Gravity Forms الخاصة بـ WordPress معرضة لثغرة Cross-Site Scripting الانعكاسية عبر معامل `form_ids` في إجراء AJAX الخاص بـ `gform_get_config` في جميع الإصدارات حتى الإصدار 2.9.30 وما يليه. ويعود السبب في ذلك إلى أن طريقة `GFCommon::send_json()` تُخرج بيانات مشفّرة بصيغة JSON ملفوفة داخل محددات تعليقات HTML باستخدام `echo` و`wp_die()`، مما يجعل الاستجابة تُرسل مع ترويسة `Content-Type: text/html` بدلاً من `application/json`. ولا تقوم دالة `wp_json_encode()` بترميز أقواس الزاوية داخل قيم سلاسل JSON، مما يسمح بتحليل وسوم HTML/script المحقونة في قيم مصفوفة `form_ids` وتنفيذها بواسطة المتصفح. ويتم إنشاء `config_nonce` المطلوب باستخدام `wp_create_nonce('gform_config_ajax')` ويُضمَّن بشكل علني في كل صفحة تعرض نموذج Gravity Forms، مما يجعله متطابقاً لجميع الزوار غير المصادقين خلال نفس فترة الـ 12 ساعة الخاصة بـ nonce. وهذا يتيح للمهاجمين غير المصادقين حقن نصوص برمجية ويب عشوائية في الصفحات التي يتم تنفيذها إذا نجحوا في خداع المستخدم لتنفيذ إجراء مثل النقر على رابط. لا يمكن استغلال هذه الثغرة ضد المستخدمين المصادقين على النظام المستهدف، ولكن يمكن استخدامها لتغيير الصفحة المستهدفة.
المصادر
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.