20 августа 2026 года в экосистеме Spring раскрыто более восьмидесяти уязвимостей, затрагивающих Spring Security, Spring Framework, Spring Integration, Spring AI, Spring Cloud Config и другие проекты. Среди них есть проблемы, позволяющие обойти проверку пользователя в WebAuthn, повторить перехваченные DPoP-доказательства, выполнить произвольный код через небезопасную десериализацию и получить административный доступ к встроенному LDAP-серверу.
Детали уязвимостей
В Spring Security обнаружили обход проверки пользователя в WebAuthn - стандарте аутентификации с помощью устройств-аутентификаторов, известных как passkey. Проблема возникает, когда приложение использует распределенное хранилище HTTP-сессий, например Spring Session с Redis или JDBC. При сериализации и десериализации объект UserVerificationRequirement перестает совпадать с константой REQUIRED при сравнении по ссылке. Spring Security сравнивает значения именно по ссылке, поэтому проверка отключается. Если приложение настроено на обязательную проверку пользователя, атакующий с физическим доступом к аутентификатору может обойти PIN-код или биометрию. Уязвимость присутствует в версиях с 6.4.0 по 7.1.0.
Другая проблема в Spring Security касается протокола DPoP - механизма доказательства владения ключом при выдаче токенов доступа. Фабрика DPoPProofJwtDecoderFactory хранит обработанные идентификаторы JWT в кэше, чтобы предотвратить повторное использование доказательств. Кэш ограничен по размеру, и атакующий может перехватить легитимное доказательство, а затем заполнить кэш фиктивными запросами, вытеснив нужный идентификатор. После этого перехваченное доказательство можно использовать повторно. Это приводит к несанкционированному доступу и подмене пользователя. Проблема затрагивает Spring Security 6.5.0 - 6.5.11, 7.0.0 - 7.0.6 и 7.1.0.
Отдельная группа уязвимостей связана с небезопасной десериализацией Java. В Spring Integration компонент SerializingHttpMessageConverter читает тело запроса через ObjectInputStream без фильтрации классов. Если на classpath приложения есть известные "гаджеты", удаленный неаутентифицированный атакующий может выполнить произвольный код. Аналогичная проблема есть в Spring Batch: десериализатор JobParameterDeserializer обходит список доверенных типов, а DefaultExecutionContextSerializer не использует фильтр. Эти уязвимости требуют особых условий, но при их выполнении последствия критичны.
Критическая уязвимость CVE-2026-59270 затрагивает встроенный LDAP-сервер Spring Security на базе UnboundID. Компонент UnboundIdContainer регистрирует хорошо известную административную учетную запись и слушает все сетевые интерфейсы. Если порт доступен, атакующий может аутентифицироваться под администратором и читать или изменять данные в каталоге. Проблема актуальна для приложений, использующих встроенный LDAP через spring.ldap.embedded.* или напрямую.
Массовое обновление также закрывает уязвимости в Spring Cloud Config. Там обнаружены атака вида "проверка-использование" (TOCTOU) при работе с SVN, отсутствие проверки webhook-запросов к endpoint /monitor и раскрытие файлов за пределами настроенного каталога. В Spring Data REST исправлены проблемы с изменением идентификатора и версии через JSON Patch, что позволяет обойти оптимистичную блокировку и получить горизонтальное повышение привилегий. Reactor Netty получил исправления для утечки учетных данных при редиректе WebSocket, неверной оценки адресов с HAProxy Protocol и отказа в обслуживании при конвейерных запросах.
В Spring for GraphQL устранили загрузку сторонних скриптов с CDN без проверки целостности, что создает риск выполнения кода в браузере при компрометации CDN. Также закрыта небезопасная десериализация в поддержке пагинации, способная привести к удаленному выполнению кода. Spring AI исправил переполнение стека при обработке PDF с вложенным оглавлением, подмену ONNX-моделей через предсказуемый путь кэша и неограниченное накопление сессий в MCP-транспорте. В Spring Cloud Commons добавлен список разрешенных ключей для записи в /actuator/env, а Spring Authorization Server получил исправление межсайтового скриптинга на странице согласия.
Разработчики выпустили исправленные версии для всех затронутых проектов. Для Spring Security это 7.1.1, 7.0.7, 6.5.12 и 6.4.19. Для Spring Integration - 7.1.1, 7.0.6, 6.5.11, 6.4.13 и 5.5.22. Пользователям Spring Cloud Config нужно обновиться до 5.0.5, 4.3.5, 4.2.9 или 3.1.15. Аналогичные обновления вышли для Spring Framework, Spring AI, Spring Batch, Spring for GraphQL и других модулей. Часть исправлений доступна только в коммерческой поддержке, остальные - в открытых версиях. Рекомендуется обновить все затронутые компоненты и проверить конфигурацию, особенно если используются распределенные сессии, встроенный LDAP или прием сообщений из ненадежных источников.
Пакет обновлений демонстрирует, что даже зрелые каркасы приложений накапливают проблемы безопасности, связанные с особенностями сериализации, сравнения объектов и доверия к внешним данным. Регулярное обновление зависимостей и ограничение доступа к служебным интерфейсам остаются основными мерами защиты для приложений на Java.
Ссылки