TREK — это совместный планировщик путешествий. До версии 3.1.0, когда надстройка Journey включена, TREK интерполирует неэкранированное значение activeSuggestion.title в travel.frontpage.suggestionText через client/src/i18n/TranslationContext.tsx и визуализирует результат с помощью опасноSetInnerHTML в client/src/pages/JourneyPage.tsx. Владелец поездки может сохранить HTML в соответствующем заголовке поездки, а GET /api/journeys/suggestions возвращает это название через getSuggestions(userId) соавтору, который открывает проверенную страницу путешествия.
Разметка вставляется как активный DOM в сеанс соавтора, позволяя подменять контент и исправлять пользовательский интерфейс, хотя политика безопасности контента по умолчанию блокирует встроенные обработчики и выполнение сценариев. Эта проблема исправлена в версии 3.1.0.
Показать оригинальное описание (EN)
TREK is a collaborative travel planner. Prior to 3.1.0, when the Journey add-on is enabled, TREK interpolates the unescaped activeSuggestion.title value into journey.frontpage.suggestionText through client/src/i18n/TranslationContext.tsx and renders the result with dangerouslySetInnerHTML in client/src/pages/JourneyPage.tsx. A trip owner can store HTML in a qualifying trip title, and GET /api/journeys/suggestions returns that title through getSuggestions(userId) to a collaborator who opens the authenticated Journey page. The markup is inserted as live DOM in the collaborator's session, enabling content spoofing and UI redress, although the default Content Security Policy blocks inline handlers and script execution. This issue is fixed in version 3.1.0.
Характеристики атаки
Последствия
Строка CVSS v4.0