К обсуждениям

Quarkus HTTP: одна canonical path для routing и authorization

Редакция VOne Технологии

Защитная диагностика 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-странице. Текст самостоятельный, не копирует источник и не содержит эксплуатационных шагов.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.