Защитная инструкция по Winter CMS и ghsa-hq84-x37p-j6q5: проверить применимость, выполнить обратимый стендовый сценарий, распознать безопасный исход и остановиться без опасного payload.
Паспорт применимости: Winter CMS
Сузьте advisory до конкретного решения вашей конфигурации. Для Winter CMS Reviewed advisory ghsa-hq84-x37p-j6q5 подтверждает отдельную проблему: query search мог попадать в script type=text/template как raw text без HTML encoding. Пакетная граница записи: composer:winter/wn-backend-module >= 1.0.420, <= 1.2.13; первая исправленная 1.2.14. Запись dependency сверяют с runtime version, digest, команде запуска и build provenance. Отсутствие artifact либо inactive path означает not-applicable с доказательством; при неизвестном происхождении — unknown. Severity medium задаёт приоритет разбора, но не доказывает эксплуатацию, ущерб или состояние конкретной установки. GitHub фиксирует публикацию 2026-08-20 и обновление 2026-08-20; эти даты не заменяют локальный inventory.
Наблюдения до изменения Winter CMS
До update или containment сохраните набор наблюдений, специфичный для этой карточки: версия wn-backend-module, Table/DataTable routes, template partial, search value, raw response и DOM tree. Рядом с каждым наблюдением сохраняют происхождение, время и ответственного. Четыре допустимые отметки — expected, observed, unknown, not-applicable; пустота запрещает зелёный вывод. Отдельно укажите входной субъект, policy/parser, защищаемый объект и вид контролируемого отказа. Это отделяет «query search мог попадать в script type=text/template как raw text без HTML encoding» от обычной ошибки конфигурации, stale process, proxy/cache или прежнего инцидента. Исходный и контрольный снимки создают идентичной процедурой. Редактируйте tokens, cookies, реальные адреса, персональные данные и закрытые пути; полные дампы в редакционный пакет не входят. Если health был красным заранее, сначала закройте этот инцидент.
Стендовый сценарий без опасного входа
В disposable среде выполняют только это: на локальной backend странице сравнить обычный поиск и безвредную строку с угловыми скобками без closing tag или event. Схема A→B→A2 отделяет baseline от граничного случая. До запуска задают synthetic input, disposable scope, time и resource budget. Ожидаемый исход записывают до запуска: обычный поиск работает, спецсимволы кодируются, script template не закрывается, DOM не получает новый node. Между A, B и A2 не меняйте одновременно dependency, роли, network и storage. При crash, timeout, необъяснимом 500 либо ручном repair зелёный статус запрещён. Не копируйте рабочий exploit из источника, не направляйте запрос к чужой системе и не используйте production данные. Если A2 отличается от A, вернитесь к baseline.
Как классифицировать результат
Таблица решения для Winter CMS содержит version boundary, runtime digest, active-path evidence, исходы A/B/A2, health и cleanup. Статус passed-bounded-check допустим только когда обычный поиск работает, спецсимволы кодируются, script template не закрывается, DOM не получает новый node. Affected runtime получает update-required; непроверенный новый — patched-unverified; без evidence остаётся unknown; провал — failed-safe-check. Если Reviewed record не называет first patched version, не придумывайте её: используйте vendor release или containment и оставляйте patch boundary unknown. Passed-результат локален для выбранного стенда и момента. Он не является общей гарантией безопасности Winter CMS, не исключает соседние дефекты и не доказывает качество всей установки.
Остановка, возврат и передача владельцу
Условие немедленной остановки: нужен активный XSS payload, production backend, session другого пользователя или отключение encoder. При stop criterion эксперимент не масштабируют ни по правам, ни по ресурсам. Заранее подготовленный возврат: очистить query и fixture table, вернуть partial snapshot, сравнить обычный DOM. Очистка доказана повтором A, отсутствием внешнего diff и закрытием всех временных объектов. В ticket помещают минимально необходимое: composer digest, два redacted query, raw/DOM diff, node count и cleanup. Добавьте время, expected/actual, две прямые ссылки и ответственного за очистку. Не включайте секреты, активный payload, личные обстоятельства и инфраструктуру третьих лиц. Отчёт помогает выбрать update либо containment, но не обещает поисковый результат, спрос или уже выполненный тест.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным, первичным и исследовательским источникам; факты, даты, версии и ссылки перепроверены. Реальные пользовательские данные, активные опасные payload и вымышленные результаты тестов не использовались.
Источники и проверка
- GitHub Advisory Database ghsa-hq84-x37p-j6q5 по Winter CMS проверено 2026-08-30
- Прямая upstream или research-страница Winter CMS проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.