Защитная инструкция по Spring Data REST и ghsa-p5mm-xwgq-whfr: установить применимость, проверить редакцию cause chain в HTTP errors на одноразовом стенде, измерить безопасный исход и подготовить обратимый выпуск без production-данных.
Карта применимости для Spring Data REST
Advisory описывает отдельную проблему: HTTP error body может раскрыть persistence-layer classes, query details и внутреннюю cause chain. Проверяемая граница проходит между repository exception, REST exception handler и serialized error response. Диапазоны Reviewed record: maven:org.springframework.data:spring-data-rest-core >= 5.0.0, <= 5.0.5 → 5.0.6; maven:org.springframework.data:spring-data-rest-core >= 4.5.0, <= 4.5.11 → 4.5.12; maven:org.springframework.data:spring-data-rest-core >= 4.4.0, <= 4.4.14 → fixed version not listed; maven:org.springframework.data:spring-data-rest-core >= 4.3.0, <= 4.3.16 → fixed version not listed; maven:org.springframework.data:spring-data-rest-core <= 3.7.19 → fixed version not listed. Provenance включает источник артефакта, checksum и фактическую команду запуска. Снимите версии spring-data-rest-core/framework, repository operation, exception depth, public error fields, class/query markers, HTTP status и server log id. Для каждого элемента укажите observed, expected, unknown или not-applicable, время и происхождение. Severity medium не подтверждает атаку, ущерб либо состояние конкретного deployment. Если происхождение бинарника неизвестно, не делайте вывод по одному package manager.
Матрица решений на защитной границе
Разложите сценарий на вход, policy/parser, защищаемый объект и наблюдаемый исход. Для Spring Data REST это «между repository exception, REST exception handler и serialized error response». Ветвь close допустима, когда runtime вне указанных диапазонов или функция недостижима и это подтверждено. Ветвь update выбирают при совпавшей версии и доступном фиксированном артефакте. Ветвь contain оставляет узкое ограничение доступа до окна обновления. Ветвь escalate нужна при unknown provenance. Отсутствие события в log не приравнивают к безопасному отказу без контроля. Не объединяйте этот механизм с соседними advisory только из-за общего слова security.
Обратимый тест без эксплуатационного payload
Безопасный опыт: в локальной in-memory repository вызвать предсказуемую validation failure с synthetic field, затем сравнить client body и server-only log. Проверка ограничена формой решения, счётчиками и хешами fixtures. Измеримый безопасный исход: client получает стабильный status и безопасное сообщение без class/query/cause markers, подробность остаётся только в защищённом server log. Не увеличивайте объём, глубину, число соединений или права после первого отклонения. Сохраняйте только decision code, counters, timings и hashes; реальные имена, адреса, credentials и пользовательские данные исключите. Красная линия: нужна production database, реальная query или ответ содержит schema/table detail. При её достижении завершите стенд и оставьте результат blocked/unknown вместо попытки воспроизвести атаку.
Окно обновления и контроль регрессии
Зафиксируйте исходный dependency tree и артефакт, установите подтверждённую исправленную ветку из диапазона «maven:org.springframework.data:spring-data-rest-core >= 5.0.0, <= 5.0.5 → 5.0.6; maven:org.springframework.data:spring-data-rest-core >= 4.5.0, <= 4.5.11 → 4.5.12; maven:org.springframework.data:spring-data-rest-core >= 4.4.0, <= 4.4.14 → fixed version not listed; maven:org.springframework.data:spring-data-rest-core >= 4.3.0, <= 4.3.16 → fixed version not listed; maven:org.springframework.data:spring-data-rest-core <= 3.7.19 → fixed version not listed» в staging и повторите тот же baseline/boundary/baseline набор. Не меняйте одновременно reverse proxy, role model, parser settings или OS: иначе нельзя связать результат с обновлением. Сравните latency, memory, accepted/rejected decisions и обычный функциональный сценарий. Временный containment снимают только после безопасного результата и готового возврата. Возврат для этой карточки: остановить app, удалить in-memory data/log/profile, вернуть dependency lock.
Критерий закрытия и минимальный пакет
Карточка закрывается, когда версия и provenance подтверждены, граничный вход даёт ожидаемый отказ или безопасную обработку, обычный контроль проходит, cleanup завершён, а журнал не содержит новых warning/error. Минимальный пакет для поддержки: versions, operation, exception depth, response field names, marker scans, status, log correlation и cleanup. В нём не должно быть IP, tokens, passwords, cookies, private keys, полного config, реальных файлов или payload. Отдельной строкой укажите: GitHub Reviewed Advisory подтверждает механизм и диапазон, но не эксплуатацию в этой среде, популярность запроса, индексацию или позиции.
Материал подготовлен редакцией VOne с помощью ИИ, затем вручную проверен по двум прямым HTTPS-источникам; факты, диапазоны версий, безопасный опыт и отсутствие рекламных обещаний сверены человеком.
Источники и проверка
- GitHub Reviewed Advisory ghsa-p5mm-xwgq-whfr проверено 2026-08-30
- Upstream-страница Spring Data REST проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.