Rocket.Chat в версиях до 8.8.0, 8.7.1, 8.6.2, 8.5.3, 8.4.6. В версиях 8.3.8, 8.2.8, 8.1.8 и 7.10.15 методы Meteor DDP getThreadsList и getThreadMessages принимаютrid/tmid как необработанные, нетипизированные параметры без проверки схемы. Объект оператора MongoDB (например, {"$gt": "4"}) можно заменить строковым идентификатором комнаты или идентификатором сообщения.
Проверка авторизации разрешается для комнаты, к которой злоумышленник уже имеет доступ, в то время как нисходящий запрос данных распространяется по всем комнатам, раскрывая родителей частного потока и их полный контент ответа любому аутентифицированному пользователю с низким уровнем привилегий. Маршрут RESTchat.getThreadsList был исправлен в версии 5.0 (отчет HackerOne № 1446767) путем добавления проверки AJVrid: {type:'string'}. Эквивалентный метод DDP никогда не получал такого же исправления и остается пригодным для использования.
Показать оригинальное описание (EN)
Rocket.Chat in versions before 8.8.0, 8.7.1, 8.6.2, 8.5.3, 8.4.6. 8.3.8, 8.2.8, 8.1.8, and 7.10.15, the Meteor DDP methods getThreadsList and getThreadMessages accept rid / tmid as raw, untyped parameters with no schema validation. A MongoDB operator object (e.g. {"$gt": "4"}) can be substituted for a string room-id or message-id. The authorization check resolves to a room the attacker already has access to, while the downstream data query fans out across all rooms - disclosing private thread parents and their full reply content to any low-privilege authenticated user. The REST route chat.getThreadsList was patched in v5.0 (HackerOne report #1446767) by adding rid: {type:'string'} AJV validation. The equivalent DDP method was never given the same fix and remains exploitable
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 8
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
— |
7.10.15
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
8.1.0
|
8.1.8
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
8.2.0
|
8.2.8
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
8.3.0
|
8.3.8
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
8.4.0
|
8.4.6
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
8.5.0
|
8.5.3
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:*:*:*:*:*:*:*:*
|
8.6.0
|
8.6.2
|
|
Rocket.Chat Rocket.Chat
cpe:2.3:a:rocket.chat:rocket.chat:8.7.0:*:*:*:*:*:*:*
|
— | — |