Безопасная проверка Jackson @JsonView по ghsa-5hh8-q8hv-fr38: применимость, обратимый опыт для границы «active-view check in both creator and regular property-buffer branches», матрица результата и stop-rule без production-данных.
Отделите advisory от установки Jackson @JsonView
Сначала отделите факт advisory от гипотезы о своей установке Jackson @JsonView. Зафиксируйте package source, рабочая сборка version, build digest, feature/config reachability и роль, которая достигает ветви. GitHub Reviewed Advisory сообщает «jackson-databind has @JsonView bypass for setterless creator properties», даты 2026-06-23/2026-07-20 и границы «com.fasterxml.jackson.core:jackson-databind >= 2.21.0, < 2.21.4; first patched 2.21.4 | com.fasterxml.jackson.core:jackson-databind >= 3.0.0, < 3.1.4; first patched 3.1.4 | tools.jackson.core:jackson-databind >= 3.0.0, < 3.1.4; first patched 3.1.4». Это не подтверждает affected code в конкретной сборке: fork и vendor backport требуют commit provenance. Пока provenance или reachability неизвестны, статус только unknown, без вывода об эксплуатации, популярности или ущербе.
Назовите отдельный защитный invariant
Опишите один узкий invariant: active-view check in both creator and regular property-buffer branches. Отдельная боль пользователя: restricted setterless Collection или Map заполняется, хотя current view её исключает. Укажите субъект, объект, trust boundary, решение policy и самый ранний чувствительный side effect. Pass-критерий задайте заранее: public view leaves restricted collection untouched; admin view follows declared policy. Он отличается от общего «ошибки нет»: защита обязана сработать до read, send, execute, write, cache commit, credential issue или process exit. Решающий артефакт — active-view / property-kind / buffering-branch / visible / collection-size; в нём нет имён, IP, содержимого файлов и персональных данных.
Проведите дифференциальный обратимый опыт
Создайте обратимый контрольное окружение: minimal DTO with public/admin views, setterless collection and harmless marker JSON. Затем deserialize under each view and inspect only collection size and property-visible flag. Все значения синтетические, сеть отключена либо loopback-only, filesystem ограничен mkdtemp, persistence — in-memory или rollback transaction. Добавьте positive control и boundary case, одинаковый timeout и deterministic ordering. Перед опытом оставьте в отчёте input digest и expected row; после — result class, counters, final-state digest и cleanup proof. Нагрузочный или эксплуатационный вариант не нужен и запрещён.
Прочитайте матрицу до side effect
Заполните матрицу «active-view / property-kind / buffering-branch / visible / collection-size» строка за строкой. Сопоставьте observed с правилом «public view leaves restricted collection untouched; admin view follows declared policy», в отдельном поле отмечая stage решения и факт любого побочного эффекта. Positive control обязан пройти тот же код: иначе deny может означать сломанный контрольное окружение. Для гонки или cache/state темы изменяйте только детерминированный interleaving и повторяйте малое число раз. Green возможен, когда безопасный сценарий работает, пограничный отклонён раньше действия, а state digest соответствует ожидаемому.
Подтвердите механизм исправления
Проверьте patch provenance по смыслу: diff следует контракту и реализовать «active-view check in both creator and regular property-buffer branches», а не просто изменить номер релиза. На одном лабораторный сценарий сравните текущую и candidate build и оставьте в отчёте «active-view / property-kind / buffering-branch / visible / collection-size». Диапазон «com.fasterxml.jackson.core:jackson-databind >= 2.21.0, < 2.21.4; first patched 2.21.4 | com.fasterxml.jackson.core:jackson-databind >= 3.0.0, < 3.1.4; first patched 3.1.4 | tools.jackson.core:jackson-databind >= 3.0.0, < 3.1.4; first patched 3.1.4» используйте как фильтр, не как доказательство. Если update требует rollout, эта статья не разрешает production change: нужен отдельный контракт с backup, canary, readiness и rollback. Не обещайте, что один фикс закрывает весь класс риска или даёт поисковый итог.
Примените stop-rule и privacy boundary
Stop-rule: остановить опыт до application DTO, пользовательского JSON или side-effecting setter. Также прекратите опыт при внешнем адресе, real credential, privilege prompt, данных вне лабораторный сценарий, необратимой записи, росте ресурсов, отсутствии normal control или cleanup. Статус будет blocked, а не «почти прошёл». Для поддержки передайте ghsa-5hh8-q8hv-fr38, Jackson @JsonView, version/build provenance, «com.fasterxml.jackson.core:jackson-databind >= 2.21.0, < 2.21.4; first patched 2.21.4 | com.fasterxml.jackson.core:jackson-databind >= 3.0.0, < 3.1.4; first patched 3.1.4 | tools.jackson.core:jackson-databind >= 3.0.0, < 3.1.4; first patched 3.1.4», sanitized «active-view / property-kind / buffering-branch / visible / collection-size», expected/observed, stop reason и прямые source URLs. Не публикуйте payload, чужие логи, конфиги и приватные ссылки.
Завершите деревом решения
Дерево решения для Jackson @JsonView: proven patched/non-affected build — not-applicable; недостижимая по документированной конфигурации ветвь — not-reachable; candidate build выполняет «public view leaves restricted collection untouched; admin view follows declared policy» — ready-for-reviewed-update; наблюдается «restricted setterless Collection или Map заполняется, хотя current view её исключает» — fail и эскалация владельцу. Иначе unknown. К каждому листу приложите один факт из «active-view / property-kind / buffering-branch / visible / collection-size» и criterion «остановить опыт до application DTO, пользовательского JSON или side-effecting setter». Такой ответ самостоятельный: он решает конкретный intent через reversible test, matrix, red flags и минимальный support packet, а не размножает страницу заменой бренда.
Материал подготовлен редакцией VOne с помощью ИИ; даты, диапазоны, прямые ссылки, безопасный опыт, privacy-ограничения и отсутствие рекламных обещаний затем перепроверены по первичным источникам.
Источники и проверка
- GitHub Reviewed Advisory ghsa-5hh8-q8hv-fr38 проверено 2026-08-31
- Upstream-репозиторий Jackson @JsonView проверено 2026-08-31
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.