
Apache OpenMeetings 9.1.0 — высокий уровень — удалённо — IDOR — dashboard chatTab-u{id} экспортирует приватный чат другого пользователя
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-chat-user-idor
Класс: IDOR Доступ: Удалённый
Apache OpenMeetings 9.1.0 (9773c59e). Любая сессия ROOM/DASHBOARD экспортирует личный чат другого пользователя, установив activeTab=chatTab-u{id}. Ветка пользователя в ChatToolbar — u -> true. Кнопки сохранения/удаления видны только администратору; AjaxDownloadBehavior зарегистрирован на самой панели инструментов.
| ID | CVE пока нет |
| Класс | IDOR |
| Доступ | Удалённый (аутентифицированная панель Wicket) |
| CWE | CWE-639 |
| CVSS | Высокий: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N |
| Продукт | Apache OpenMeetings 9.1.0 |
| Аутентификация | LOGIN + DASHBOARD (регистрация по умолчанию) |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1:18151 |
| Метод | Точка воздействия | Привилегия |
|---|---|---|
Скачивание чата Wicket activeTab=chatTab-u{victimId} | Ветка пользователя в ChatToolbar u -> true (ChatToolbar.java:87-94, 134-138) | Разведка (подтверждено в лаборатории): CSV личных сообщений. Лаборатория: "Vic User",...,"OPENMEETINGS-CHAT-IDOR-WITNESS". |
Тот же activeTab для удаления AjaxButton | chatDao.deleteUser(id) (ChatToolbar.java:208-212) | Целостность (предположительно): уничтожение этого почтового ящика. Экспорт был оракулом SUCCESS. |
Закрыто: глобальный экспорт/экспорт комнаты по-прежнему требует администратора или модератора комнаты. Kick/mute-all — это не данный обратный вызов.
cd lab
./run.sh
Последняя строка: SUCCESS OPENMEETINGS-CHAT-IDOR-WITNESS
Предлагаемое исправление: скачивание/удаление в ветке пользователя должно проверять u.getId().equals(getUserId()) или права администратора. Не регистрировать AjaxDownloadBehavior для скрытых кнопок администратора.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
Поставщик: [email protected]