Защитная диагностика http4s Blaze: изоляция trailer fields от request headers по GHSA-46q4-43ph-c6fr: runtime inventory, bounded regression, измеримый verdict, красная линия и пакет данных для владельца.
Ответ и граница применимости — http4s Blaze: изоляция trailer fields от request headers
Задача этой страницы — проверить что chunked-body trailers не повышаются до исходных Request.headers после front-end sanitization. Сначала подтвердите фактически загруженный org.http4s:blaze-http_2.13, его digest, диапазон «Maven:org.http4s:blaze-http_2.13 <= 0.23.17; first patched 0.23.18 | Maven:org.http4s:blaze-http_2.12 <= 0.23.17; first patched 0.23.18 | Maven:org.http4s:blaze-http_3 <= 0.23.17; first patched 0.23.18 | Maven:org.http4s:blaze-http_3 >= 1.0.0-M1, < 1.0.0-M42; first patched 1.0.0-M42 | Maven:org.http4s:blaze-http_2.13 <= 1.0.0-M41; first patched 1.0.0-M42» и включённый entry point. Затем нужен только ограниченный regression: Chunk parser вызвать на коротких inert frames; network listener и application handler заменить spies. Боль: поздний trailer может подменить служебное поле уже после проверки заголовков front-end. Итоговый артефакт: initial headers / trailer fields / protected names / application view / verdict. GHSA GHSA-46q4-43ph-c6fr задаёт проверяемый ориентир, но не доказывает состояние вашей установки.
Карта решения — http4s Blaze: изоляция trailer fields от request headers
Разделите путь на Source → Parse/Normalize → Policy → Side effect. Специальная инварианта материала: Initial headers неизменяемы после policy; trailers доступны отдельной коллекцией и не участвуют в auth/routing. На каждой границе укажите представление данных, владельца решения и counter. Candidate становится NOT_APPLICABLE только при доказанном отсутствии package или entry point; неизвестная runtime-версия означает UNKNOWN, а не безопасность.
Подготовка безопасного стенда — http4s Blaze: изоляция trailer fields от request headers
Соберите temp directory, in-memory repository/cache либо pure adapter. Примените протокол: Chunk parser вызвать на коротких inert frames; network listener и application handler заменить spies. Используйте короткие canary labels; пользовательские записи, токены, IP, реальные конфиги, production routes и environment dump запрещены. Network, shell, database, filesystem, browser и session issuance замените spies. До control сохраните hash fixture и нулевые counters.
Control и одна переменная — http4s Blaze: изоляция trailer fields от request headers
Разрешённый control подтверждает, что harness достигает нужной ветки. Boundary-case меняет ровно один параметр и обязан остановиться до состояния «поздний trailer может подменить служебное поле уже после проверки заголовков front-end». Сохраните поля initial headers / trailer fields / protected names / application view / verdict, reason code и monotonic duration. Initial headers неизменяемы после policy; trailers доступны отдельной коллекцией и не участвуют в auth/routing. Не наращивайте размер/глубину после первого превышения и не используйте эксплуатационные payload.
Вердикт без догадок — http4s Blaze: изоляция trailer fields от request headers
PASS: runtime и entry point подтверждены, control прошёл, boundary остановлен до side effect, cleanup доказан. FAIL: та же provenance и наблюдаемый запрещённый counter/state. UNKNOWN: нет digest, конфигурации, control, точки наблюдения или восстановления. NOT_APPLICABLE: компонент либо функция доказанно отсутствуют. Номер patched release без runtime readback не является PASS.
Красная линия и восстановление — http4s Blaze: изоляция trailer fields от request headers
Немедленный стоп: protected trailer появился в request headers, handler увидел conflicting value или parse order изменился. После стопа не повторяйте проверку с большим вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Ненулевой неожиданный counter сети, процессов, файлов, записей или сессий блокирует PASS и фиксируется отдельно.
Почему нужен отдельный материал — http4s Blaze: изоляция trailer fields от request headers
Строит двухфазный parser-to-application contract и отдельную allowlist безопасных trailers. Не header count DoS: самостоятельная temporal boundary между initial headers и chunk trailers. Поэтому механическая замена framework, ОС или устройства не создаёт новый URL. Практическая самостоятельность выражена в deliverable «initial headers / trailer fields / protected names / application view / verdict» и в инварианте: Initial headers неизменяемы после policy; trailers доступны отдельной коллекцией и не участвуют в auth/routing. Совпадающий старый intent должен стать update/merge-кандидатом.
Минимальный handoff — http4s Blaze: изоляция trailer fields от request headers
Передайте владельцу GHSA GHSA-46q4-43ph-c6fr, runtime digest, границу «Maven:org.http4s:blaze-http_2.13 <= 0.23.17; first patched 0.23.18 | Maven:org.http4s:blaze-http_2.12 <= 0.23.17; first patched 0.23.18 | Maven:org.http4s:blaze-http_3 <= 0.23.17; first patched 0.23.18 | Maven:org.http4s:blaze-http_3 >= 1.0.0-M1, < 1.0.0-M42; first patched 1.0.0-M42 | Maven:org.http4s:blaze-http_2.13 <= 1.0.0-M41; first patched 1.0.0-M42», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-24, обновлена 2026-08-12; эти даты отражают свежесть источника, а не популярность запроса или факт эксплуатации. После remediation повторите тот же fixture и сравните state transition.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика; версии, даты, границы и ссылки вручную сверены по GitHub Advisory Database и прямой upstream-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.
Источники и проверка
- GitHub Advisory Database — GHSA-46q4-43ph-c6fr проверено 2026-09-02
- Первичный upstream advisory — org.http4s:blaze-http_2.13 проверено 2026-09-02
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.