CVE-2026-91132: обход белого списка iframe в Discourse через разделители authority
В Discourse — открытой платформе для обсуждений — обнаружена уязвимость среднего уровня (CVSS 4.3), позволяющая обойти проверку origin для iframe при использовании шаблонов с подстановочными знаками в настройке allowed_iframes. Злоумышленник с правом публикации может внедрить iframe с контролируемого им домена. Проблема устранена в версиях 2026.1.8, 2026.6.3, 2026.7.2 и 2026.8.0.
Подробности
Уязвимость затрагивает сайты Discourse, в настройке allowed_iframes которых используются шаблоны с подстановочными знаками (wildcard-паттерны). При такой конфигурации система проверяла соответствие URL разрешённому домену по текстовому совпадению суффикса, однако браузер при разборе URL мог выбрать совсем другой origin — тот, который контролируется атакующим. Причина расхождения кроется в разделителях authority (компонента URL, определяющего хост). Если в сконструированном URL разрешённый суффикс оказывался после такого разделителя, проверка Discourse его «узнавала» и пропускала, тогда как браузер интерпретировал адрес иначе и загружал iframe с чужого домена. Таким образом, заявленный белый список фактически не ограничивал источник встраиваемого контента. Для эксплуатации злоумышленнику достаточно иметь право публикации: внедрение возможно как через обычный пост, так и через ответ Onebox oEmbed. Это делает вектор атаки относительно доступным для зарегистрированных пользователей форума. Вместе с тем, успешная эксплуатация требует одновременного выполнения двух условий: на сайте настроен wildcard-шаблон iframe, а у атакующего есть возможность создать пост или инициировать oEmbed-запрос на подконтрольный ему URL. Прямое удалённое выполнение кода или повышение привилегий в рамках данной уязвимости не описаны. Уязвимости подвержены версии Discourse до 2026.1.8, 2026.6.3, 2026.7.2 и 2026.8.0. Исправление выпущено в указанных версиях.Что делать
Основная рекомендация — обновить Discourse до одной из исправленных версий: 2026.1.8, 2026.6.3, 2026.7.2 или 2026.8.0. Именно в них устранено несоответствие между логикой проверки разрешённых origin и тем, как URL разбирается браузером. Если немедленное обновление невозможно, следует рассмотреть временные меры. В первую очередь стоит проверить настройку allowed_iframes и отказаться от избыточно широких wildcard-шаблонов, заменив их на точные перечисления конкретных доменов. Это снижает вероятность того, что сконструированный URL пройдёт проверку. Дополнительно имеет смысл ограничить возможности публикации для недоверенных пользователей и внимательно отслеживать подозрительные встраивания iframe в постах и oEmbed-ответах. После обновления рекомендуется убедиться, что настройки белого списка iframe приведены к минимально необходимому набору доверенных источников, а также провести аудит уже опубликованного контента на предмет нежелательных встраиваний.Итог
CVE-2026-91132 — наглядный пример того, как расхождение между собственной логикой проверки и стандартным парсингом URL в браузере открывает путь для обхода ограничений безопасности. Уязвимость не критична по оценке CVSS, но требует внимания администраторов Discourse, использующих wildcard-шаблоны в allowed_iframes. Своевременное обновление до исправленных версий и ужесточение конфигурации белого списка закрывают проблему.Источник: CVE Project (cvelistV5)
