Получен отчёт об ошибке: обход белого списка iframe для onebox. Кто-нибудь может помочь с проверкой?

Мы управляем форумом Discourse и получили внешнее сообщение, в котором утверждается, что существует уязвимость, позволяющая внедрять код через механизм onebox / allowed_onebox_iframes. Прежде чем предпринимать какие-либо действия, я хотел бы получить помощь от сообщества/команды в подтверждении того, возможно ли описанное поведение в текущей версии Discourse.

В сообщении утверждается:

  • Discourse автоматически создаёт onebox для «голого» URL-адреса, если он находится на отдельной строке, и встраивает twitter:player страницы в виде iframe для всех пользователей.
  • Проверка соответствия источника для белого списка iframe осуществляется только по префиксу, поэтому хост вроде www.youtube.com.attacker.example будет принят как легитимное встраивание YouTube, хотя и будет обслуживать контролируемый злоумышленником HTML-код.
  • Значение по умолчанию для allowed_onebox_iframes фактически является подстановочным символом.

Мое понимание заключается в том, что (а) Discourse проверяет хосты из белого списка iframe на основе границ домена, а не просто по префиксу, и (б) белый список iframe для onebox по умолчанию представляет собой тщательно отобранный список провайдеров, а не *. Может ли кто-нибудь подтвердить, как работает проверка хостов для allowed_onebox_iframes в текущей версии, и может ли трюк с суффиксом поддомена, описанный в сообщении, действительно пройти валидацию?

Мы используем версию Discourse v2026.8.0-latest. Готовы поделиться исходным сообщением в частном порядке с командой безопасности, если это будет полезно.

Спасибо.

4 лайка