Защитная инструкция по http4s blaze и ghsa-mhvj-jhpq-885v: установить применимость, проверить единое определение HTTP/1.1 message boundary на одноразовом стенде, измерить безопасный исход и подготовить обратимый выпуск без production-данных.
Карта применимости для http4s blaze
Advisory описывает отдельную проблему: lenient wire parser может не согласиться с proxy о границе запроса. Проверяемая граница проходит между edge parser, blaze Java wire parser и backend request queue. Диапазоны Reviewed record: maven:org.http4s:http4s-blaze-server_2.13 <= 0.23.17 → 0.23.18; maven:org.http4s:blaze-http_2.13 <= 0.23.17 → 0.23.18; maven:org.http4s:blaze-http_3 <= 0.23.17 → 0.23.18; maven:org.http4s:blaze-http_3 >= 1.0.0-M1, <= 1.0.0-M41 → 1.0.0-M42; maven:org.http4s:blaze-http_2.13 >= 1.0.0-M1, <= 1.0.0-M41 → 1.0.0-M42. Экспозиция считается только после сверки runtime и включённой функции. Снимите версии blaze/proxy, parser mode, header classes, accepted/rejected flags, backend request count, connection reuse и response order. Для каждого элемента укажите observed, expected, unknown или not-applicable, время и происхождение. Severity high не подтверждает атаку, ущерб либо состояние конкретного deployment. Если происхождение бинарника неизвестно, не делайте вывод по одному package manager.
Критерий закрытия и минимальный пакет
Карточка закрывается, когда версия и provenance подтверждены, граничный вход даёт ожидаемый отказ или безопасную обработку, обычный контроль проходит, cleanup завершён, а журнал не содержит новых warning/error. Минимальный пакет для поддержки: versions, fixture class matrix, two parser decisions, backend counts, connection states и cleanup. В нём не должно быть IP, tokens, passwords, cookies, private keys, полного config, реальных файлов или payload. Отдельной строкой укажите: GitHub Reviewed Advisory подтверждает механизм и диапазон, но не эксплуатацию в этой среде, популярность запроса, индексацию или позиции.
Матрица решений на защитной границе
Разложите сценарий на вход, policy/parser, защищаемый объект и наблюдаемый исход. Для http4s blaze это «между edge parser, blaze Java wire parser и backend request queue». Ветвь close допустима, когда runtime вне указанных диапазонов или функция недостижима и это подтверждено. Ветвь update выбирают при совпавшей версии и доступном фиксированном артефакте. Ветвь contain оставляет узкое ограничение доступа до окна обновления. Ветвь escalate нужна при unknown provenance. Unknown остаётся unknown и передаётся владельцу компонента. Не объединяйте этот механизм с соседними advisory только из-за общего слова security.
Обратимый тест без эксплуатационного payload
Безопасный опыт: в полностью локальной цепочке proxy→backend передать набор официальных conformance fixtures с неоднозначными headers, но без скрытого второго request. Перед опытом задайте числовой порог и один контрольный вход. Измеримый безопасный исход: edge и backend одинаково отклоняют каждый ambiguous fixture, canonical request проходит как один. Не увеличивайте объём, глубину, число соединений или права после первого отклонения. Сохраняйте только decision code, counters, timings и hashes; реальные имена, адреса, credentials и пользовательские данные исключите. Красная линия: появляется второй request, используется публичный endpoint или создаётся эксплуатационная последовательность. При её достижении завершите стенд и оставьте результат blocked/unknown вместо попытки воспроизвести атаку.
Окно обновления и контроль регрессии
Зафиксируйте исходный dependency tree и артефакт, установите подтверждённую исправленную ветку из диапазона «maven:org.http4s:http4s-blaze-server_2.13 <= 0.23.17 → 0.23.18; maven:org.http4s:blaze-http_2.13 <= 0.23.17 → 0.23.18; maven:org.http4s:blaze-http_3 <= 0.23.17 → 0.23.18; maven:org.http4s:blaze-http_3 >= 1.0.0-M1, <= 1.0.0-M41 → 1.0.0-M42; maven:org.http4s:blaze-http_2.13 >= 1.0.0-M1, <= 1.0.0-M41 → 1.0.0-M42» в staging и повторите тот же baseline/boundary/baseline набор. Не меняйте одновременно reverse proxy, role model, parser settings или OS: иначе нельзя связать результат с обновлением. Сравните latency, memory, accepted/rejected decisions и обычный функциональный сценарий. Временный containment снимают только после безопасного результата и готового возврата. Возврат для этой карточки: закрыть sockets/processes, удалить captures и fixtures, вернуть proxy config.
Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-mhvj-jhpq-885v проверено 2026-08-30
- Upstream-страница http4s blaze проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.