
Apache OpenMeetings 9.1.0 — высокий уровень — удалённо — остаточные привилегии — SOAP POST /user копирует UserDTO.rights, включая ADMIN
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-user-rights
Класс: Остаточные привилегии Доступ: Удалённый
Apache OpenMeetings 9.1.0. SOAP POST /user/ копирует UserDTO.rights и выполняет обновление по id. SOAP — это учётная запись интеграции с LMS. Предполагается, что она остаётся ниже ADMIN. UserMapper выполняет userDao.get(dto.getId()), затем u.setRights(dto.getRights()). UserWebService.add добавляет ROOM/LOGIN/DASHBOARD и никогда не удаляет ADMIN.
| ID | CVE пока нет |
| Класс | Остаточные привилегии |
| Доступ | Удалённый (SOAP SID) |
| CWE | CWE-269, CWE-280 |
| CVSS | Высокий: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| Продукт | Apache OpenMeetings 9.1.0 |
| Аутентификация | Right.SOAP (не ADMIN) |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1:18152 |
| Метод | Точка срабатывания | Привилегия |
|---|---|---|
SOAP POST /services/user/?sid= rights=["ADMIN"] | UserMapper.setRights + userDao.update | Целостность (подтверждено в лаборатории): внедрение ADMIN. Лаборатория: plantedadm — свидетельство по имени, DELETE /user/3 от внедрённого пользователя вернул 200 Deleted. DELETE только через SOAP от soaplab вернул error.notallowed. |
Тот же POST с существующим id | userDao.get(dto.getId()) | Целостность (подтверждено в лаборатории): перезапись через слияние по id. Лаборатория: пользователь 4 с логином mergeover и ADMIN. |
Закрыто: DELETE /user/{id} по-прежнему требует ADMIN. ROOM SID при добавлении возвращает NO_PERMISSION. Регистрация через фронтенд не принимает массив прав.
cd lab
./run.sh
Последняя строка: SUCCESS OPENMEETINGS-SOAP-RIGHTS-WITNESS
Предлагаемое исправление: игнорировать UserDTO.rights при добавлении через SOAP или разрешать только LOGIN/ROOM/DASHBOARD. Никогда не загружать по id при добавлении. Удалять ADMIN/SOAP, если вызывающий не является ADMIN.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Поставщик: [email protected]