
ماسح استغلال وتشخيص لثغرة تنفيذ الأوامر عن بُعد (RCE) غير المصادق عليها في Weaver E-cology، يستهدف نقطة نهاية dubboApi للتصحيح. يتضمن إثبات المفهوم (PoC)، وسكربت Nmap NSE، وإرشادات المعالجة.
يحتوي Weaver E-cology 10.0 (قبل الإصدار 20260312) على ثغرة حرجة لتنفيذ كود عن بُعد غير مصادق عليها في نقطة النهاية /papi/esearch/data/devops/dubboApi/debug/method. يمكن للمهاجمين حقن أوامر عشوائية عبر معاملات POST interfaceName و methodName دون مصادقة، مما يحقق اختراقاً كاملاً للنظام. تم رصد استغلال نشط منذ 2026-03-31 من قبل مؤسسة Shadowserver.
الخطر السريع: CVSS 9.3 - غير مصادق عليه تماماً، لا يتطلب تفاعل المستخدم، نقطة نهاية قابلة للوصول عبر الشبكة تؤدي مباشرة إلى تنفيذ كود.
| الجانب | التفاصيل |
|---|---|
| معرف CVE | CVE-2026-22679 |
| درجة CVSS | 9.3 (حرجة) |
| متجه CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-94 (حقن كود) |
| البائع | Weaver (Fanwei) |
| المنتج | E-cology 10.0 |
| نوع الثغرة | تنفيذ كود عن بُعد غير مصادق عليه (RCE) |
| نقطة النهاية المتأثرة | /papi/esearch/data/devops/dubboApi/debug/method |
| متجه الهجوم | شبكة / HTTP POST |
| المصادقة المطلوبة | لا شيء |
| الإصدارات المتأثرة | إصدارات 10.0 قبل الإصدار 20260312 |
| الإصدار المُصلَح | الإصدار 20260312 (صدر في 2026-03-12) |
| الاستغلال النشط | منذ 2026-03-31 (مؤسسة Shadowserver) |
| طريقة التصحيح | الإزالة الكاملة لنقطة النهاية المعرضة |
Weaver E-cology هو أحد أكثر منصات الأتمتة المكتبية (OA) والتعاون المؤسسي انتشاراً في الصين. تم تطويره بواسطة مجموعة Fanwei، ويُستخدم على نطاق واسع في:
يوفر E-cology حلولاً مؤسسية شاملة تشمل:
تتراوح عمليات نشر E-cology عادةً من مئات إلى آلاف المستخدمين لكل مؤسسة. تُعد المنصة مكوناً بنيوياً حاسماً للعديد من المؤسسات، مما يجعل الثغرات فيها ذات تأثير بالغ الخطورة.
توجد الثغرة في نقطة تصحيح dubboApi، والتي يُرجح أنها تُركت قابلة للوصول لأغراض التطوير واستكشاف الأخطاء. تسمح نقطة النهاية بالاستدعاء المباشر لطرق عشوائية عبر إطار عمل Dubbo RPC دون التحقق المناسب من المدخلات أو فحوصات المصادقة.
نمط الكود المعرض:``` POST /papi/esearch/data/devops/dubboApi/debug/method HTTP/1.1 Host: target.com Content-Type: application/json
{ "interfaceName": "com.weaver.rpc.InvokeCommand", "methodName": "executeCommand", "parameters": ["id", "whoami", "cat /etc/passwd"] }
التطبيق يعالج هذه المعاملات مباشرة ويمررها إلى مساعدات تنفيذ أوامر RPC دون:
- التحقق من المصادقة
- التحقق من صحة الإدخال/تنقيته
- فرض قائمة بيضاء للطرق
- فحص أنواع المعاملات
وهذا يسمح للمهاجمين بتحديد طرق واجهة Dubbo عشوائية تنفذ أوامر النظام.
### مخطط تدفق الهجوم```
Internet Attacker
|
| Sends unauthenticated POST request
| with malicious interfaceName/methodName
v
Weaver E-cology HTTP Server (port 80/443)
|
| No authentication check
| No authorization validation
v
/papi/esearch/data/devops/dubboApi/debug/method endpoint
|
| Direct parameter pass-through to Dubbo RPC layer
v
Dubbo RPC Framework (unvalidated interface invocation)
|
| Resolves arbitrary interface methods
| Attacker-controlled method name injection
v
Command Execution Helpers (vulnerable classes)
|
| Direct OS command execution via Runtime.exec()
| or similar OS command invocation mechanisms
v
System Command Execution
|
| Complete code execution as Weaver service user
| (typically root or high-privilege account)
|
+-> Read sensitive files (/etc/passwd, configs)
+-> Execute arbitrary binaries
+-> Create reverse shells
+-> Exfiltrate data
+-> Establish persistence
v
Complete System Compromise
مسار نقطة النهاية: /papi/esearch/data/devops/dubboApi/debug/method
طريقة HTTP: POST
المصادقة المطلوبة: لا شيء (بدون مصادقة)
الترويسات المطلوبة: ترويسات HTTP القياسية (لا تتطلب رموزًا خاصة أو ملفات تعريف ارتباط)
معاملات جسم الطلب:
| المعامل | النوع | الوصف | مثال |
|---|---|---|---|
interfaceName | String | اسم فئة واجهة RPC (يُتحكم فيه من قبل المهاجم) | com.weaver.rpc.InvokeCommand |
methodName | String | اسم الطريقة المراد استدعاؤها (يُتحكم فيه من قبل المهاجم) | executeCommand |
parameters | Array | معاملات الطريقة التي تُمرَّر مباشرة إلى منطق التنفيذ | ["id"] |
Internet | v Firewall (often misconfigured or open for "accessibility") | v Web Server (port 80/443) | +--------> HTTP Request to any path | v Route Dispatcher | +---> /login/Login.jsp > Requires authentication | +---> /wui/index.html > Requires authentication | +---> /papi/esearch/data/devops/dubboApi/debug/method | +---> UNPROTECTED - No authentication check! | v Dubbo RPC Invoker (unrestricted method invocation) | v OS Command Execution | v System Compromise (RCE as web user)
### بنية نشر Weaver النموذجية```
Corporate Network
=================
Internet > Firewall (port 80/443 open for E-cology)
|
v
Load Balancer (optional)
|
+---------+---------+
| | |
v v v
Node1 Node2 Node3
Web Web Web
Server Server Server
| | |
+----------+----+----+
|
v
Shared Storage
(Documents/Config)
|
v
Database Server
(MySQL/Oracle)
Each Web Server has:
- Weaver E-cology Java application
- Embedded Tomcat/JBoss container
- Dubbo RPC framework
- VULNERABLE /papi/esearch/data/devops/dubboApi/debug/method
endpoint (pre-patch)