
Неаутентифицированный эксплойт RCE и сканер обнаружения для Weaver E-cology, нацеленный на отладочную конечную точку dubboApi. Включает PoC, NSE-скрипт Nmap и рекомендации по устранению уязвимости.
Weaver E-cology 10.0 (до сборки 20260312) содержит критическую уязвимость неаутентифицированного удалённого выполнения кода в конечной точке /papi/esearch/data/devops/dubboApi/debug/method. Злоумышленники могут внедрять произвольные команды через POST-параметры interfaceName и methodName без аутентификации, добиваясь полного компрометации системы. Активная эксплуатация обнаружена с 2026-03-31 организацией Shadowserver Foundation.
Быстрая оценка риска: CVSS 9.3 — полностью неаутентифицированная, не требует взаимодействия с пользователем, доступная по сети конечная точка, ведущая непосредственно к выполнению кода.
| Аспект | Детали |
|---|---|
| CVE ID | 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 Foundation) |
| Метод исправления | Полное удаление уязвимой конечной точки |
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-заголовки (специальные токены или cookie не требуются)
Параметры тела запроса:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
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
=================