شعار منصة فورجوالي الرسمي - خدمات الرسائل والواتساب والاستضافة

تحديث عاجل لمستخدمي Geo Mashup: ثغرة SQL تهدد قواعد بياناتك

كُشف عن ثغرة أمنية عالية الخطورة في إضافة Geo Mashup الشهيرة لمنصة WordPress، تسمح لمهاجمين غير مُصادقين بتنفيذ حقن SQL من النوع الزمني (Time-Based Blind SQLi) عبر معامل sort. تؤثر الثغرة على جميع الإصدارات حتى 1.13.18 وتتيح استخراج بيانات حساسة من قاعدة البيانات. يتعين على مديري السيرفرات والمواقع تحديث الإضافة فوراً لتفادي استهداف منصاتهم.

⚠️ عالية · CVSS 7.5CVE-2026-4060 · CWE-89

التفاصيل التقنية

تنشأ الثغرة المُسجّلة تحت المعرف CVE-2026-4060 من ضعف في تطهير المدخلات ضمن سياق جملة ORDER BY داخل ملفات الإضافة المسؤولة عن بناء الاستعلامات الجغرافية. فعلى الرغم من استخدام الدالة esc_sql() على قيمة المعامل sort، إلا أنها غير فعّالة في هذا السياق تحديداً لأن القيمة لا تُحاط بعلامات اقتباس، مما يجعل التهريب (escaping) عديم الأثر.

في الإصدار 1.13.18 أضاف المطوّر دالة تطهير قائمة على قائمة بيضاء (allowlist) باسم sanitize_sort_arg()، لكن التصحيح طُبّق حصراً على مسار AJAX داخل الدالة sanitize_query_args()، وأُغفل تطبيقه في المسارات الأخرى مثل render-map.php ووسوم القوالب (template tags). هذا الإغفال يُبقي الثغرة قائمة في مسارات متعددة يستطيع المهاجم استدعاؤها بلا مصادقة.

يستغل المهاجم الثغرة بحقن استعلامات SQL إضافية داخل الاستعلام القائم، ويعتمد على أسلوب العمى الزمني (Time-Based Blind) عبر دوال مثل SLEEP() لاستخراج المعلومات بيتاً ببت من خلال قياس زمن الاستجابة.

التصنيف التقني للثغرة هو CWE-89: SQL Injection، وهو من أخطر أنواع الثغرات على بيئات الاستضافة المشتركة والمخصصة.

CVE-2026-4060 - WordPress - رسم توضيحي أمني ثنائي الأبعاد
CVE-2026-4060 · WordPress · 2D Explainer

درجة الخطورة

حصلت الثغرة على تقييم 7.5 (HIGH) وفق معيار CVSS، وهو تقييم يعكس الخطورة الفعلية لعدة أسباب:

  • عدم الحاجة إلى مصادقة: يمكن للمهاجم استغلالها دون امتلاك أي حساب على الموقع.
  • سهولة الاستغلال عن بُعد: عبر طلب HTTP عادي يمرّر معامل sort مُعدّلاً.
  • تسريب بيانات حساسة: مثل بيانات اعتماد المستخدمين، مفاتيح API، ومحتوى الجداول.
  • تأثير على السيرفر: استعلامات SLEEP المتكررة قد تُرهق قاعدة البيانات وتؤدي إلى تدهور الأداء أو حجب الخدمة عن المواقع المجاورة في بيئات الاستضافة المشتركة.

هل تم استغلالها؟

حتى تاريخ نشر هذه النشرة، لم تُدرَج الثغرة ضمن كتالوج CISA KEV للثغرات المُستغلّة فعلياً، ولا توجد تقارير علنية مؤكدة عن حملات استغلال واسعة النطاق. غير أن ثغرات SQL Injection في إضافات WordPress تستقطب تاريخياً اهتماماً كبيراً من المهاجمين الآليين (bots) بمجرد الإفصاح عنها، نظراً لسهولة أتمتتها وانتشار الإضافات المتأثرة. لذا يُعدّ التحديث الفوري إجراءً وقائياً لا يحتمل التأجيل.

الحل والإصلاح

التوصية الأساسية هي ترقية إضافة Geo Mashup إلى أحدث إصدار يُعالج الثغرة في جميع مسارات الكود (وليس فقط مسار AJAX). للتحقق من إصدار الإضافة المُثبّتة على السيرفر عبر WP-CLI:

wp plugin get geo-mashup --field=version

لتحديث الإضافة فوراً إلى أحدث نسخة:

wp plugin update geo-mashup

لتعطيل الإضافة مؤقتاً حتى إتمام التحديث إن تعذّر ذلك:

wp plugin deactivate geo-mashup

للبحث عن جميع المواقع المتأثرة على سيرفر يستضيف عدة تنصيبات WordPress:

find /var/www -name "geo-mashup" -type d

لمراجعة سجلات الويب بحثاً عن محاولات استغلال تستهدف المعامل sort:

grep -Ei "sort=.*(sleep|benchmark|union|select)" /var/log/nginx/access.log

يُنصح كذلك بتفعيل قواعد ModSecurity أو جدار حماية تطبيقي (WAF) يحجب أنماط حقن SQL الشائعة في معاملات URL، ومراجعة سجلات MySQL للكشف عن استعلامات طويلة الزمن غير معتادة:

mysqldumpslow -s t /var/log/mysql/mysql-slow.log | head -20

الخلاصة والتوصية

تُمثّل ثغرة CVE-2026-4060 تذكيراً مهمّاً بأن إضافات WordPress تبقى أحد أبرز نواقل الهجوم على بيئات الاستضافة. وبما أن الاستغلال لا يتطلب مصادقة ويستهدف قاعدة البيانات مباشرة، فإن المخاطر تمتد من تسريب بيانات المستخدمين إلى إرهاق موارد السيرفر. نوصي مديري الاستضافة بفحص جميع تنصيبات العملاء، وإجبار تحديث الإضافة، وتفعيل حماية WAF، ومراقبة السجلات خلال الأيام التالية للإفصاح لرصد أي محاولات استغلال آلية.

📎 ملفات التحميل

📄 English Security Advisory – تقرير احترافي للمختصين

📝 Technical README (Markdown) – وثائق تقنية للفرق الداخلية

تحديث عاجل لمستخدمي Geo Mashup: ثغرة SQL Injection تهدد قواعد بياناتك

كُشف عن ثغرة حقن SQL قائمة على الزمن (Time-Based SQL Injection) في إضافة Geo Mashup الشهيرة على WordPress تؤثر على جميع الإصدارات حتى 1.13.18. تسمح الثغرة للمهاجمين غير المصادقين باستخراج بيانات حساسة من قاعدة البيانات عبر معامل map_post_type. يُنصح مديرو السيرفرات وأصحاب المواقع بالتحديث الفوري، خاصةً عند تفعيل ميزة Geo Search.

⚠️ عالية · CVSS 7.5CVE-2026-4061 · CWE-89

التفاصيل التقنية للثغرة

تحمل الثغرة المعرّف CVE-2026-4061 وتُصنَّف ضمن فئة CWE-89 (Improper Neutralization of Special Elements used in an SQL Command). مصدر الخلل يقع في ملف SearchResults.php ضمن الـ hook الخاص بنتائج البحث، حيث يتم استدعاء الدالة stripslashes_deep($_POST) بشكل صريح، مما يُزيل طبقة الحماية التي يوفّرها WordPress عبر Magic Quotes.

بعد ذلك، تُمرَّر قيمة map_post_type دون أي تعقيم إلى عبارة IN(...) داخل استعلام SQL، وذلك دون استخدام esc_sql() أو $wpdb->prepare(). اللافت أن الفرع الخاص بالقيمة any في نفس الكود يطبّق بشكل صحيح array_map('esc_sql', ...)، بينما يغفل الفرع البديل (else branch) عن ذلك تماماً.

شرط الاستغلال الوحيد هو تفعيل ميزة Geo Search من إعدادات الإضافة، وهي ميزة مفعّلة في كثير من المواقع التي تعتمد الإضافة للخرائط التفاعلية.

CVE-2026-4061 - WordPress - رسم توضيحي أمني ثنائي الأبعاد
CVE-2026-4061 · WordPress · 2D Explainer

درجة الخطورة

حصلت الثغرة على تقييم CVSS 7.5 (HIGH)، ويُعزى ارتفاع هذا التقييم إلى:

  • إمكانية الاستغلال من قِبل مهاجم غير مصادَق (Unauthenticated) عبر الإنترنت.
  • تسريب بيانات حساسة من قاعدة البيانات مثل بيانات المستخدمين وكلمات المرور المُجزّأة (hashed passwords).
  • سهولة الأتمتة عبر أدوات مثل sqlmap نظراً لكونها Time-Based Blind.
  • عدم الحاجة إلى تفاعل من المستخدم (No User Interaction).

على مستوى استضافة المواقع، قد يؤدي استغلالها إلى ضغط كبير على خدمة MySQL/MariaDB بسبب استعلامات SLEEP() المتكررة، مما قد يتسبّب في بطء السيرفر أو توقف مؤقت للموقع.

هل تم استغلالها؟

حتى وقت نشر هذا التقرير، لم تُدرَج الثغرة ضمن قائمة KEV (Known Exploited Vulnerabilities) الصادرة عن CISA، ولم تُرصَد حملات استغلال واسعة. مع ذلك، فإن طبيعة الثغرة (Unauthenticated SQL Injection في إضافة WordPress) تجعلها هدفاً جذاباً لمنشئي البوتات وماسحات الثغرات الآلية، ومن المتوقع ظهور محاولات استغلال جماعية خلال فترة قصيرة من الإفصاح العلني.

الحل والإصلاح

الحل الرسمي هو التحديث إلى الإصدار الذي يتجاوز 1.13.18 والذي يتضمن التصحيح المرجعي في changeset/3503627.

1) التحقق من إصدار الإضافة المثبّتة عبر WP-CLI:

wp plugin get geo-mashup --field=version

2) تحديث الإضافة فوراً:

wp plugin update geo-mashup

3) إن لم يتوفر التحديث بعد، يمكن تعطيل الإضافة مؤقتاً كإجراء طارئ:

wp plugin deactivate geo-mashup

4) كحل وسيط، يمكن تعطيل ميزة Geo Search من لوحة الإعدادات لأن الاستغلال يتطلّب تفعيلها.

5) للكشف عن محاولات استغلال في سجلات Nginx/Apache:

grep -Ei "map_post_type.*(SLEEP|BENCHMARK|UNION|SELECT)" /var/log/nginx/access.log

6) إضافة قاعدة حماية على مستوى ModSecurity/WAF لحجب الحمولات المشبوهة في المعامل:

SecRule ARGS:map_post_type "@rx (?i)(sleep(|benchmark(|unions+select)" "id:1004061,phase:2,deny,status:403,msg:'Geo Mashup SQLi attempt'"

7) مراقبة استعلامات MySQL البطيئة التي قد تدل على استغلال ناجح:

tail -f /var/log/mysql/slow.log

الخلاصة والتوصية

تُمثّل هذه الثغرة تذكيراً بأهمية استخدام واجهات WordPress الآمنة للاستعلامات مثل $wpdb->prepare() بدلاً من الاعتماد على تعقيم يدوي قد يغفل فروعاً في الكود. نوصي مديري السيرفرات ومقدّمي خدمات الاستضافة بفرض التحديث التلقائي لإضافة Geo Mashup على جميع المواقع المستضافة، وتفعيل قواعد WAF للحدّ من محاولات الحقن الآلي، ومراقبة سجلات MySQL البطيئة لرصد أي نشاط غير طبيعي مرتبط بالمعامل map_post_type.

📎 ملفات التحميل

📄 English Security Advisory – تقرير احترافي للمختصين

📝 Technical README (Markdown) – وثائق تقنية للفرق الداخلية

تحديث عاجل لمستخدمي Geo Mashup: ثغرة SQL تهدد قواعد بياناتك

كُشفت ثغرة SQL Injection عالية الخطورة في إضافة Geo Mashup الخاصة بـ WordPress، وتؤثر على جميع الإصدارات حتى 1.13.18.
المشكلة تسمح لمهاجم غير موثّق باستخراج معلومات حساسة من قاعدة البيانات بأسلوب Time-Based Blind SQL Injection.
بالنسبة لمديري الاستضافة والسيرفرات، الأولوية الآن هي حصر المواقع المتأثرة والتحقق من الإصدار ثم التحديث أو التعطيل المؤقت.

⚠️ عالية · CVSS 7.5CVE-2026-4062 · CWE-89

التحليل التقني

الثغرة مسجّلة بالمعرّف CVE-2026-4062 ونُشرت بتاريخ 2026-05-02 12:16:16. المنتج المتأثر هو إضافة Geo Mashup لـ WordPress، وتشمل جميع الإصدارات حتى 1.13.18. التصنيف البرمجي هو CWE-89، ما يعني أنها ثغرة SQL Injection.

بحسب الوصف المتاح، تكمن المشكلة في تمرير القيم القادمة من المستخدم عبر المعاملين object_ids وexclude_object_ids دون حماية كافية داخل استعلامات SQL. تم استخدام الدالة esc_sql()، لكنها غير فعّالة في هذا السياق لأن القيم توضع داخل بنية IN(...) وNOT IN(...) غير المحاطة بعلامات اقتباس، بينما هذه الدالة لا تمنع حقن الأقواس أو الكلمات المفتاحية الخاصة بـ SQL.

الوصف يذكر أيضاً أن هناك آلية تنقية تقبل الأرقام فقط داخل sanitize_query_args()، لكنها لا تُطبّق إلا في مسار AJAX، ولا تُطبّق في مسارات render-map.php أو template tags. عملياً، هذا يوسّع سطح الهجوم في بيئات الاستضافة التي تعرض الخرائط أو تعتمد على استدعاءات الإضافة من القوالب في الواجهة الأمامية.

نتيجة ذلك، يمكن لمهاجم غير مسجّل الدخول إلحاق استعلامات إضافية داخل الاستعلامات الموجودة فعلاً، ثم استخدام أسلوب Time-Based Blind SQL Injection لاستخراج معلومات حساسة من قاعدة البيانات. في بيئات الاستضافة، هذا يعني أن الخطر لا يقتصر على تسريب البيانات فقط، بل قد يظهر أيضاً على شكل بطء متعمّد في استجابة قاعدة البيانات أثناء محاولات الاستغلال.

CVE-2026-4062 - WordPress - رسم توضيحي أمني ثنائي الأبعاد
CVE-2026-4062 · WordPress · 2D Explainer

درجة الخطورة

درجة الخطورة المعلنة هي 7.5 من 10 وفق CVSS، وهي ضمن المستوى HIGH. هذا التقييم منطقي لأن الاستغلال لا يتطلب تسجيل دخول، ويستهدف قاعدة البيانات مباشرة، وقد يؤدي إلى كشف معلومات حساسة من موقع WordPress المتأثر. بالنسبة لفرق إدارة السيرفرات، أي موقع يستخدم Geo Mashup بإصدار 1.13.18 أو أقدم يجب اعتباره ضمن نطاق الخطر حتى يتم التحقق منه ومعالجته.

هل تم استغلالها؟

لا توجد في البيانات المتاحة إشارة إلى إدراج الثغرة ضمن KEV، حيث إن القيمة المعلنة هي “لا”. كذلك لا يوجد ضمن المعلومات المقدّمة ما يؤكد وجود استغلال فعلي واسع النطاق وقت النشر. مع ذلك، كونها ثغرة SQL Injection غير موثّقة في إضافة WordPress يرفع من أهمية التعامل معها بسرعة، خصوصاً في المواقع العامة التي تعرض وظائف الإضافة للزوار مباشرة.

الحل والإصلاح

الإجراء الأول هو تحديد كل مواقع WordPress التي تحتوي على إضافة Geo Mashup داخل السيرفر أو بيئة الاستضافة. بعد ذلك تحقّق من الإصدار الحالي، لأن جميع الإصدارات حتى 1.13.18 متأثرة وفق البيانات المتاحة. إن كان الموقع يستخدم إصداراً متأثراً، فالتصرف الأنسب هو التحديث إلى إصدار أحدث من 1.13.18 يتضمن الإصلاح المشار إليه في مرجع changeset الرسمي.

في الحالات التي يتعذر فيها التحديث فوراً، يكون التعطيل المؤقت للإضافة خياراً دفاعياً لتقليل سطح الهجوم إلى أن يتم تطبيق الإصلاح. هذا مهم بشكل خاص في خوادم الاستضافة التي تستضيف عدة مواقع WordPress ويصعب فيها انتظار نوافذ صيانة طويلة.

للعثور على الإضافة عبر السيرفر:

find /var/www -path "*/wp-content/plugins/geo-mashup" -type d

للتحقق من الإضافة عبر WP-CLI داخل موقع محدد:

wp plugin list --path=/var/www/html | grep geo-mashup

للتحقق من رقم الإصدار مباشرة من ملف الإضافة:

grep -i "^Version:" /var/www/html/wp-content/plugins/geo-mashup/geo-mashup.php

لتحديث الإضافة إن كان WP-CLI متاحاً:

wp plugin update geo-mashup --path=/var/www/html

وللتعطيل المؤقت إذا تعذر التحديث فوراً:

wp plugin deactivate geo-mashup --path=/var/www/html

بعد تنفيذ التحديث، أعد التحقق من الحالة والإصدار:

wp plugin list --path=/var/www/html | grep geo-mashup

الخلاصة والتوصية

هذه الثغرة تمس جانباً حساساً جداً في مواقع WordPress، وهو الوصول إلى قاعدة البيانات عبر إضافة مستخدمة في الواجهة الأمامية. الخطر الأهم لمديري السيرفرات ليس فقط وجود ثغرة SQL Injection، بل كونها قابلة للاستغلال دون تسجيل دخول. التوصية العملية هي حصر جميع المواقع التي تستخدم Geo Mashup، التحقق من أي إصدار حتى 1.13.18، ثم التحديث فوراً إلى إصدار أحدث، أو تعطيل الإضافة مؤقتاً إلى أن يكتمل التصحيح.

📎 ملفات التحميل

📄 English Security Advisory – تقرير احترافي للمختصين

📝 Technical README (Markdown) – وثائق تقنية للفرق الداخلية