ثغرات أمنية في ثلاث ملحقات لـ WordPress تسمح بإدخال ملفات أوامر ذكية للغرض الضار
يستخدم حملات الهدف السلبي نقاط الضعف الخطيرة من نوع XSS في ثلاث توسُّعات لـ WordPress للحقول الخاصة بتنفيذ ملفات الأوامر الضارة وبوابات الخلفية على مواقع الويب.

الأدوات
يمكنك استدعاء وظيفة واحدة أو أكثر لمساعدتك في استعلام المستخدم.
تم تقديم توقيعات الوظائف داخل علامات XML mode=\"abstract\" يعود ~1500 حرف (صفحة PDF 1 أو وصف HTML) - استطلاع رخيص لفحص الصلة قبل دفع ثمن كامل الجسم. mode=\"full\" (القيمة الافتراضية) يعود كامل نص المقالة. من أقصى جهود: الفشل العائد يعود بـ errorInfo بدلًا من رمي الاستثناء.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"url": {"type": "string", "description": "عنوان URL العام. تُمنع الأيزولات الخاصة إلا إذا كان SURF_ALLOW_PRIVATE=true."}, "max_chars": {"default": 8000, "description": "قم بتقسيم الجسم إلى هذا العدد من الأحرف (القيمة الافتراضية 8000، تُحدد عبر SURF_EXTRACT_MAX_CHARS).", "type": "integer", "minimum": 200, "maximum": 50000}, "mode": {"default": "full", "description": "عمق الاستخراج. full = كامل جسم المقالة (القيمة الافتراضية؛ يستخدم Playwright إذا لزم الأمر). abstract = استطلاع رخيص: صفحة PDF 1 أو وصف HTML (~1500 حرف)؛ استخدم لفحص الصلة قبل دفع ثمن النص الكامل. metadata = عدد الصفحات فقط (PDF). تُكتشف الملفات الأكاديمية PDF تلقائيًا؛ الوضع المجرد يتجاهل Playwright لها.", "type": "string", "enum": ["full", "abstract", "metadata"]}}, "required": ["url"]}}}
{"type": "function", "function": {"name": "google-surf__search_extract", "description": "بحث جوجل واحد + استخراج متوازي للنتائج العليا. الوضع الافتراضي mode=\"abstract\" يعود SERP مع مقتطفات ~1500 حرف لكل نتيجة - استطلاع رخيص لما تحتويه النتائج العليا الفعلية، أقل عددًا من الرموز من إحضار جميع الأجسام. تبديل إلى mode=\"full\" فقط عند الحاجة إلى نصوص المقالات الفعلية (بطيء، عدد كبير من الرموز). فشل الاستخراج لكل صفحة يتم عزله. معطل في الوضع السحابي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"query": {"type": "string", "minLength": 1, "maxLength": 400, "description": "استعلام البحث."}, "limit": {"default": 5, "description": "عدد النتائج للاستخراج (الحد الافتراضي 5، أقصى حد 10).", "type": "integer", "minimum": 1, "maximum": 10}, "max_chars": {"description": "قم بتقسيم كل جسم نتيجة. الافتراضي يعتمد على الوضع: ~1500 للاستخلص، 8000 للكل (SURF_EXTRACT_MAX_CHARS، محدود هنا بـ 20000).", "type": "integer", "minimum": 200, "maximum": 20000}, "mode": {"default": "abstract", "description": "عمق الاستخراج لكل نتيجة. abstract (القيمة الافتراضية) = استطلاع رخيص، ~1500 حرف / نتيجة، مثالي لفحص الصلة. full = كامل الجسم لكل نتيجة، أبطأ وأكثر رموزًا؛ فقط عند الحاجة الفعلية إلى نصوص المقالات.", "type": "string", "enum": ["full", "abstract"]}}, "required": ["query"]}}}
{"type": "function", "function": {"name": "google-surf__health", "description": "حالة خادم MCP: الوضع المتشابك + الانتقالات، استخدام محدد الحد، حجم التخزين المؤقت، الإعدادات. اتصل بهذا إذا بدأت عمليات البحث في الفشل أو العودة فارغة -- تحقق من cascade.totalCaptchas و rateLimiter.queueSize، وتقليل حجم البحث إذا كانت مرتفعة.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}}
{"type": "function", "function": {"name": "semgrep__semgrep_rule_schema", "description": "\nاحصل على مخطط قاعدة Semgrep\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - الحصول على المخطط المطلوب لكتابة قاعدة Semgrep\n - تحتاج إلى رؤية ما هي الحقول المتاحة لقاعدة Semgrep\n - تحقق مما إذا كانت الحقول المتاحة لقاعدة Semgrep\n - تحقق من صحة تركيب قاعدة Semgrep\n", "parameters": {"properties": {}, "title": "semgrep_rule_schemaArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__get_supported_languages", "description": "\nيعيد قائمة اللغات المدعومة من قبل Semgrep\n\nاستخدم هذه الأداة فقط إذا كنت غير متأكد مما إذا كانت لغات Semgrep مدعومة.\n", "parameters": {"properties": {}, "title": "get_supported_languagesArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__semgrep_findings", "description": "\nيجلب النتائج من واجهة برمجة التطبيقات Semgrep AppSec Platform Findings.\n\nهذا الوظيفة تعيد النتائج الأمنية، ونوعية الكود، والسلسلة العرضية التي تم تحديدها بالفعل\nمن قبل عمليات Semgrep الماسح السابقة وأُرسلت إلى منصة Semgrep AppSec. لا تقوم\nبإجراء مسح جديد أو تحليل الكود مباشرةً. بدلاً من ذلك، يقوم بإجراء استعلام\nلواجهة برمجة التطبيقات Semgrep للوصول إلى نتائج المسح السابقة لمستودع معين أو مجموعة من المستودعات.\n\nالسلوك الافتراضي: بشكل افتراضي، يجب أن ترشح هذه الأداة حسب المستودع الحالي. النموذج\nيحدد اسم المستودع الحالي ويمرره في معلمة 'repos' لضمان أن تكون النتائج محدودة\nبالمستودع المناسب. ومع ذلك، يمكن للمستخدمين طلب نتائج من مستودعات أخرى بشكل صريح، وفي هذه الحالة يجب أن يحترم النموذج الطلب.\n\nاستخدم هذه الوظيفة عندما تكون طلب تقرير، قائمة أو تحليل للنتائج الموجودة، مثل:\n - "من فضلك أظهر القائمة الأعلى 10 من العيوب الأمنية واقترح حلولًا لها".\n - "أظهر جميع العيوب الحرجة المفتوحة في هذا المستودع".\n - "ملخص النتائج الأخيرة لمسح Semgrep".\n - "احصل على نتائج من المستودع X" (طلب صريح لمستودع مختلف)\n\nهذه الوظيفة مناسبة للقيام ب:\n- مراجعة، قائمة أو ملخص للنتائج من مسح سابق.\n- تقديم نصائح قابلة للتنفيذ أو توجيهات لإصلاح بناءً على بيانات مسح سابقة.\n\nلا تستخدم هذه الوظيفة لإجراء مسح جديد أو فحص كود لم يتم تحليله بعد من قبل\nSemgrep. بالنسبة للمسح الجديد، استخدم الوظيفة المناسبة للاستكشاف.\n", "parameters": {"properties": {"issue_type": {"default": "ISSUE_TYPE_SAST", "description": "نوع المشكلة لفرزها.", "enum": ["ISSUE_TYPE_SAST", "ISSUE_TYPE_SCA"], "title": "نوع المشكلة", "type": "string"}, "repos": {"default": [], "description": "قائمة بأسماء المستودعات لفرزها. اشمل مالك واسم المستودع، مثال 'owner/repository'", "items": {"type": "string", "description": ""}, "title": "المستودعات", "type": "array"}, "status": {"default": "ISSUE_TAB_OPEN", "description": "حالة المشكلة لفرزها.", "enum": ["ISSUE_TAB_OPEN", "ISSUE_TAB_CLOSED", "ISSUE_TAB_IGNORED", "ISSUE_TAB_REVIEWING", "ISSUE_TAB_FIXING"], "title": "الحالة", "type": "string"}, "severities": {"anyOf": [{"items": {"enum": ["SEVERITY_CRITICAL", "SEVERITY_HIGH", "SEVERITY_MEDIUM", "SEVERITY_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "شدة المشكلات لفرزها.", "title": "الشدائد"}, "confidence": {"anyOf": [{"items": {"enum": ["CONFIDENCE_HIGH", "CONFIDENCE_MEDIUM", "CONFIDENCE_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الثقة في المشكلات لفرزها.", "title": "الثقة"}, "autotriage_verdict": {"anyOf": [{"enum": ["VERDICT_TRUE_POSITIVE", "VERDICT_FALSE_POSITIVE"], "type": "string", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "حكم التriage التلقائي للمشكلات لفرزها. إذا لم يتم تقديمه، تُعاد النتائج ذات أي حكم (بما في ذلك غير المقيمة).", "title": "حكم التriage التلقائي"}, "refs": {"default": [], "description": "قائمة بأسماء الفروع (الفرع) لفرز النتائج. إذا لم يتم تقديمها، تُعاد فقط النتائج الموجودة في الفرع الرئيسي.", "items": {"type": "string", "description": ""}, "title": "المرجعيات", "type": "array"}, "limit": {"default": 10, "description": "عدد أقصى للنتائج التي يجب إعادتها", "title": "الحد الأقصى", "type": "integer"}}, "title": "semgrep_findingsArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__semgrep_scan_with_custom_rule", "description": "\nيقوم بتشغيل مسح Semgrep مع قاعدة مخصصة على محتوى الكود المقدم\nويعيد النتائج بصيغة JSON\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - مسح ملفات الكود للعثور على ثغرات أمنية غير مغطاة بقواعد Semgrep الافتراضية\n - مسح ملفات الكود للعثور على مشكلة معينة غير مغطاة بقواعد Semgrep الافتراضية\n", "parameters": {"$defs": {"CodeFile": {"properties": {"path": {"description": "مسار ملف الكود", "title": "المسار", "type": "string"}, "content": {"description": "محتوى ملف الكود", "title": "المحتوى", "type": "string"}}, "required": ["path", "content"], "title": "ملف الكود", "type": "object"}}, "properties": {"code_files": {"description": "قائمة من القواميس بـ 'path' و 'content' كمفاتيح", "items": {"$ref": "#/$defs/CodeFile", "description": ""}, "title": "ملفات الكود", "type": "array"}, "rule": {"description": "نص قاعدة Semgrep YAML", "title": "القاعدة", "type": "string"}}, "required": ["code_files", "rule"], "title": "semgrep_scan_with_custom_ruleArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__semgrep_scan", "description": "\nيقوم بتشغيل مسح Semgrep محليًا على ملفات الكود المقدمة ويُعيد النتائج بصيغة JSON.\n\nيتم توقع الملفات كمسارات مطلقة لملفات الكود.\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - مسح ملفات الكود للعثور على ثغرات أمنية\n - مسح ملفات الكود للعثور على مشكلات أخرى\n", "parameters": {"$defs": {"CodePath": {"properties": {"path": {"description": "مسار مطلق لملف الكود", "title": "المسار", "type": "string"}}, "required": ["path"], "title": "ملف الكود", "type": "object"}}, "properties": {"code_files": {"description": "قائمة من القواميس بـ 'path' يشير إلى مسار مطلق لملف الكود", "items": {"$ref": "#/$defs/CodePath", "description": ""}, "title": "ملفات الكود", "type": "array"}}, "required": ["code_files"], "title": "semgrep_scanArguments", "type": "object"}}}
{"type": "function", "function": {"name": "semgrep__get_abstract_syntax_tree", "description": "\nيعيد شجرة التمثيل المجرد (AST) لملف الكود المقدم بصيغة JSON\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - الحصول على شجرة تمثيل مجردة (AST) لملف الكود المقدم\n - الحصول على AST لملف\n - فهم بنية الكود بطريقة أكثر تفصيلًا\n - رؤية ما يراه المُحلّل في الكود\n", "parameters": {"properties": {"code": {"description": "الكود للحصول على AST له", "title": "الكود", "type": "string"}, "language": {"description": "لغة البرمجة للكود", "title": "اللغة", "type": "string"}}, "required":