Защитная диагностика Quarkus HTTP: одна canonical path для routing и authorization по GHSA-qcxp-gm7m-4j5v: runtime inventory, bounded regression, измеримый verdict, красная линия и пакет данных для владельца.
Ответ и граница применимости — Quarkus HTTP: одна canonical path для routing и authorization
Задача этой страницы — проверить parity нормализации пути между auth policy и Vert.x route. Сначала подтвердите фактически загруженный io.quarkus:quarkus-vertx-http, его digest, диапазон «Maven:io.quarkus:quarkus-vertx-http >= 0, < 3.20.6.2; first patched 3.20.6.2 | Maven:io.quarkus:quarkus-vertx-http >= 3.21.0.CR1, < 3.27.4.1; first patched 3.27.4.1 | Maven:io.quarkus:quarkus-vertx-http >= 3.28.0.CR1, < 3.33.2.1; first patched 3.33.2.1 | Maven:io.quarkus:quarkus-vertx-http >= 3.34.0.CR1, < 3.36.3; first patched 3.36.3 | Maven:io.quarkus:quarkus-vertx-http >= 3.37.0.CR1, < 3.37.0; first patched 3.37.0» и включённый entry point. Затем нужен только ограниченный regression: Request adapter вызвать на inert path variants; handler заменить spy, сервер не поднимать. Боль: разные представления dot/encoded segments могут получить разные решения авторизации и маршрутизации. Итоговый артефакт: raw path / decoded-once path / auth resource / route resource / verdict. GHSA GHSA-qcxp-gm7m-4j5v задаёт проверяемый ориентир, но не доказывает состояние вашей установки.
Карта решения — Quarkus HTTP: одна canonical path для routing и authorization
Разделите путь на Source → Parse/Normalize → Policy → Side effect. Специальная инварианта материала: Decode выполняется ровно один раз общей функцией; неоднозначные или malformed paths отклоняются до policy lookup. На каждой границе укажите представление данных, владельца решения и counter. Candidate становится NOT_APPLICABLE только при доказанном отсутствии package или entry point; неизвестная runtime-версия означает UNKNOWN, а не безопасность.
Подготовка безопасного стенда — Quarkus HTTP: одна canonical path для routing и authorization
Соберите temp directory, in-memory repository/cache либо pure adapter. Примените протокол: Request adapter вызвать на inert path variants; handler заменить spy, сервер не поднимать. Используйте короткие canary labels; пользовательские записи, токены, IP, реальные конфиги, production routes и environment dump запрещены. Network, shell, database, filesystem, browser и session issuance замените spies. До control сохраните hash fixture и нулевые counters.
Control и одна переменная — Quarkus HTTP: одна canonical path для routing и authorization
Разрешённый control подтверждает, что harness достигает нужной ветки. Boundary-case меняет ровно один параметр и обязан остановиться до состояния «разные представления dot/encoded segments могут получить разные решения авторизации и маршрутизации». Сохраните поля raw path / decoded-once path / auth resource / route resource / verdict, reason code и monotonic duration. Decode выполняется ровно один раз общей функцией; неоднозначные или malformed paths отклоняются до policy lookup. Не наращивайте размер/глубину после первого превышения и не используйте эксплуатационные payload.
Вердикт без догадок — Quarkus HTTP: одна canonical path для routing и authorization
PASS: runtime и entry point подтверждены, control прошёл, boundary остановлен до side effect, cleanup доказан. FAIL: та же provenance и наблюдаемый запрещённый counter/state. UNKNOWN: нет digest, конфигурации, control, точки наблюдения или восстановления. NOT_APPLICABLE: компонент либо функция доказанно отсутствуют. Номер patched release без runtime readback не является PASS.
Красная линия и восстановление — Quarkus HTTP: одна canonical path для routing и authorization
Немедленный стоп: auth и router видят разные resource ID либо handler вызван после deny. После стопа не повторяйте проверку с большим вводом. Верните disposable state к исходному hash, освободите объекты и выполните один benign control. Ненулевой неожиданный counter сети, процессов, файлов, записей или сессий блокирует PASS и фиксируется отдельно.
Почему нужен отдельный материал — Quarkus HTTP: одна canonical path для routing и authorization
Сравнивает идентичность ресурса на двух стадиях без реального обхода. Не file containment: это HTTP route authorization identity. Поэтому механическая замена framework, ОС или устройства не создаёт новый URL. Практическая самостоятельность выражена в deliverable «raw path / decoded-once path / auth resource / route resource / verdict» и в инварианте: Decode выполняется ровно один раз общей функцией; неоднозначные или malformed paths отклоняются до policy lookup. Совпадающий старый intent должен стать update/merge-кандидатом.
Минимальный handoff — Quarkus HTTP: одна canonical path для routing и authorization
Передайте владельцу GHSA GHSA-qcxp-gm7m-4j5v, runtime digest, границу «Maven:io.quarkus:quarkus-vertx-http >= 0, < 3.20.6.2; first patched 3.20.6.2 | Maven:io.quarkus:quarkus-vertx-http >= 3.21.0.CR1, < 3.27.4.1; first patched 3.27.4.1 | Maven:io.quarkus:quarkus-vertx-http >= 3.28.0.CR1, < 3.33.2.1; first patched 3.33.2.1 | Maven:io.quarkus:quarkus-vertx-http >= 3.34.0.CR1, < 3.36.3; first patched 3.36.3 | Maven:io.quarkus:quarkus-vertx-http >= 3.37.0.CR1, < 3.37.0; first patched 3.37.0», entry point, sanitized config, control/boundary rows, counters, verdict, stop reason и cleanup proof. Advisory опубликована 2026-07-29, обновлена 2026-07-30; эти даты отражают свежесть источника, а не популярность запроса или факт эксплуатации. После remediation повторите тот же fixture и сравните state transition.
Материал подготовлен редакцией VOne с помощью автоматизированного черновика; версии, даты, границы и ссылки вручную сверены по GitHub Advisory Database и прямой upstream-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.
Источники и проверка
- GitHub Advisory Database — GHSA-qcxp-gm7m-4j5v проверено 2026-09-02
- Первичный upstream advisory — io.quarkus:quarkus-vertx-http проверено 2026-09-02
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.