- Порезанный
- 23 сентября 2026 г. в 03:08 UTC
- Автор
- Kamo
- Обещать
- 6f10239
Входящие вызовы RingCentral/SMS были обработаны с нулевой проверкой: WebhookController перенаправил телефонию/сообщения в магазин **************************** **************************** Это было «вернуть верно»; // TODO, и подписки были созданы без проверки. Во всяком случае. Конечная точка является публичной. Любой, кто держал обработанную полезную нагрузку, мог ввести текст в любую организацию, подделать события соответствия STOP / START, вызвать всплывающее окно входящего вызова для произвольного числа (прилегающего к взлому) или подделки «из» контента, показанного на член — и резолюция с указанием номера («findByFromPhoneNumber») никогда не подпадала под действие Орг, так что реальный номер клиента может быть сопоставлен и показан не тому арендатору. Даже по-настоящему выглядящим грузом. Исправить: - RingCentralWebhookProvisioner теперь генерирует случайную верификацию для каждой стороны (сохраняется в config json, отредактирован из настроек API), регистрирует подписки по URL-адресу (‘?instanceId=’, сопоставление команд / JustCall) и отправляет токен как *******************, так что RingCentral перекликается с ним как Заголовок «Verification-Token» в каждом уведомлении. Собственная подписка RingCentral Рукопожатие владельца URL-адреса (заголовок «Validation-Token» уже используется в WebhookController) Отголоски назад) нетронуты — это другой заголовок, доказывающий другую вещь. **************** теперь проверяет этот заголовок в постоянном режиме время и не закрывается (еще нет токена, нет заголовка или несоответствие все отказываются). - WebhookController разрешает дело от '?instance Id=', требует Проверка Verification-Token должна пройти, и только после этого обрабатывает событие — подпадает под Орган этой инстанции. ********************** **************** оба получили проверенный параметр OrgId: матч в другой организации, чем проверенный веб-хук, рассматривается как не принадлежащий, точно Как число, которым никто не владеет и которому никогда не доверяет. - Безопасность развертывания (3 живых экземпляра RingCentral не должны терять входящий трафик): Каждый пропуск RingCentralWebhookProvisioner теперь примиряет фактическую учетную запись Список подписки — подписка предварительного исправления (без экземпляра / токена) удаляется и заменяется проверенным, поэтому живые экземпляры самовосстанавливаются в 30-х годах от нового Под становится лидером (он уже работает при запуске + каждые 12 часов). За разрыв перед что исцеление завершается, WebhookController по-прежнему принимает событие без экземпляра вообще по заранее установленным, непреложным правилам — но только до 2026-10-13 гг. Используйте логи громко **************** Линия так, чтобы откат был виден И не постоянный. После этой даты он закрывается, как и все остальное. Доклад для координатора: не требуется никаких действий для 3 живых экземпляров RingCentral Они заживают автоматически при следующем развертывании. Оперативно следите за **************** в журналах Voipservice после этого развертывания; он должен Прекратите появляться в течение нескольких минут. Если он все еще появляется близко к 2026-10-13, узнайте Почему подписка этого экземпляра не была исцелена (сбои RingCentralJwtTokenService) Они должны быть вырезаны отдельно или расширены. **************************** Испытания: **************************** (не закрывается без маркера/заголовка/) неправильный токен, принимает соответствующий токен, нечувствительный к случаю заголовок, **************************** (generates +persists + повторно использует токен; удаляет a) предварительно исправьте подписку и зарегистрируйте проверенную замену; оставьте здоровый ток только подписка), плюс орг-скап-кейсы, добавленные в VoipCallEventService Испытания и VoipMessageServiceKeywordTest. Все четыре мутации проверены: возвращение релевантного Охранник делает соответствующий тест красным, восстанавливая его, делает зеленым.
