CVE-2026-71502 in CTI-TransmuteИнформация

Сводка

по VulDB • 07.08.2026

В компоненте CTI-Transmute обнаружена уязвимость сохраненного межсайтового скриптинга (Stored XSS), вызванная недостаточной нейтрализацией разделителей выражений шаблонов Vue в данных, управляемых пользователем и обрабатываемых на стороне сервера.

Неавторизованный злоумышленник может создать публичное преобразование, имя или описание которого содержит вредоносное выражение Vue с использованием настроенных разделителей приложения `[[ ... ]]`. Имена профилей пользователей могут предоставлять дополнительный вектор внедрения. Несмотря на то что применяется экранирование HTML через Jinja, результирующее значение впоследствии включается в область DOM, компилируемую Vue.

Vue интерпретирует контролируемое злоумышленником значение как выражение шаблона, а не как обычный текст. Получив доступ к конструктору JavaScript Function изнутри этого выражения, злоумышленник может выполнять произвольный код JavaScript в контексте безопасности источника CTI-Transmute. Политика защиты контента (CSP) на основе nonce предотвращает эксплуатацию только частично: компилятор времени выполнения Vue требует разрешения `unsafe-eval`, что делает возможным использование уязвимости.

Вредоносная нагрузка сохраняется приложением и выполняется каждый раз, когда другой пользователь открывает затронутую страницу, например, страницу деталей публичного преобразования. Жертвой может быть как обычный пользователь, так и администратор. Успешная эксплуатация позволяет злоумышленнику:

* Получать доступ к данным, доступным жертве через приложение. * Извлекать ключи API, токены или другую конфиденциальную информацию, отображаемую на странице. * Выполнять авторизованные действия от имени сессии жертвы. * Модифицировать преобразования и другие данные приложения. * Повышать степень воздействия путем атаки на администратора.

Демонстрационная нагрузка может использовать конструкцию `[].constructor.constructor(...)` для получения конструктора JavaScript Function и выполнения произвольного кода. Регрессионные тесты также показывают, что короткая первая стадия нагрузки может извлечь описание преобразования без ограничений по размеру и оценить более крупную вторую стадию нагрузки.

Исправление устраняет уязвимость путем регистрации глобального хука завершения (finalize hook) в Jinja, который вставляет нулевой ширины символ объединения слов Unicode внутри каждого разделителя Vue, найденного в значениях, сгенерированных на стороне сервера. Это предотвращает распознавание значений как выражений шаблона со стороны Vue, сохраняя при этом их видимое представление.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

CIRCL

Резервировать

06.08.2026

Раскрытие

07.08.2026

Модерация

принято

Вход

VDB-386916

EPSS

0.00000

KEV

Нет

Деятельности

Низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!