Обновление Spring: одиннадцать уязвимостей угрожают веб-приложениям и безопасности данных

Spring

В начале июня 2026 года разработчики фреймворка Spring выпустили сразу одиннадцать бюллетеней безопасности, закрывающих критические и средние уязвимости в нескольких ключевых компонентах экосистемы. Речь идёт о Spring Framework, Spring LDAP, Spring Retry, Reactor Netty и Spring REST Docs. Некоторые из найденных проблем позволяют злоумышленнику полностью обойти аутентификацию, получить доступ к защищённым данным или вызвать отказ в обслуживании. Это означает, что тысячи корпоративных приложений, построенных на Java и использующих популярный фреймворк, могут оказаться под угрозой, если администраторы не установят патчи в ближайшее время.

Уязвимости, затрагивающие все версии Spring Framework

Самая опасная из зарегистрированных проблем - CVE-2026-41720 в Spring LDAP, получившая высокий уровень опасности. Она связана с тем, что компонент DirContextAuthenticationStrategy не проверяет случай, когда имя пользователя непустое, а пароль пуст или равен null. Согласно стандарту RFC 4513, такая попытка соединения считается неаутентифицированной. На LDAP-серверах, допускающих подобные запросы, атакующий может войти под любым известным логином, просто не указав пароль. Уязвимость напоминает известную проблему CVE-2014-0079 в Spring Security. Патчи выпущены для всех поддерживаемых веток LDAP: 2.4.5, 3.2.18, 3.3.8 и 4.0.4.

Остальные уязвимости в Spring Framework имеют средний уровень опасности, но их совокупность делает обновление обязательным. Например, CVE-2026-41838 касается модуля spring-websocket: идентификаторы сессий WebSocket генерируются без криптографической непредсказуемости, что в сочетании с недостаточными правилами авторизации позволяет злоумышленнику перехватить сессию. CVE-2026-41839 - это атака фиксации сессии в WebFlux: если злоумышленник контролирует один из поддоменов приложения (например, через XSS-атаку), он может подменить идентификатор сессии на уже известный и получить доступ к учётной записи аутентифицированного пользователя.

Отдельного внимания заслуживают уязвимости, связанные с обработкой статических ресурсов в Spring MVC и WebFlux. CVE-2026-41841 приводит к раскрытию конфиденциальной информации из-за некорректного кэширования: если для разных наборов ресурсов настроен общий кэш, а один из обработчиков требует аутентификации, то после загрузки публичного файла с тем же именем защищённый ресурс становится доступен без проверки прав. CVE-2026-41842 и CVE-2026-41843 - это уже отказ в обслуживании и обход пути (path traversal) при использовании версионированных статических файлов. Первая позволяет злоумышленнику отправлять медленно обрабатываемые запросы, удерживая HTTP-соединения открытыми и исчерпывая ресурсы сервера. Вторая даёт возможность читать файлы за пределами настроенных директорий, если атакующий знает или угадывает метаданные целевых ресурсов.

Ещё одна уязвимость - CVE-2026-41844 - представляет собой открытое перенаправление (open redirect) в Spring MVC и WebFlux. Если в приложении настроено отображение для пути "/" без явного указания имени представления, то через префикс redirect: можно отправить пользователя на произвольный внешний сайт. Для Spring MVC также возможно внутреннее перенаправление через префикс forward:, что может быть использовано для обхода ограничений доступа.

Проблемы в других компонентах Spring

За пределами основного фреймворка также найдены серьёзные уязвимости. CVE-2026-41710 в Spring Retry позволяет атакующему исчерпать кэш повторных попыток, отправляя большое количество уникальных запросов, каждый из которых завершается сбоем. После заполнения кэша все последующие повторные попытки и автоматические выключатели (circuit breakers) в приложении перестают работать, что приводит к отказу в обслуживании. Уязвимость затрагивает только явно включённые "государственные" повторные попытки (stateful retries), когда ключи кэша контролируются атакующим. Исправления вышли для версий 1.3.5 и 2.0.13.

CVE-2026-41715 в Reactor Netty связана с утечкой учётных данных при перенаправлении с защищённого протокола на незащищённый. Если HTTP-клиент Reactor Netty настроен на следование редиректам, то при переходе с HTTPS на HTTP в некоторых сценариях в открытом виде могут передаваться пароли или токены. Исправления доступны для всех четырёх поддерживаемых веток, начиная с Reactor BOM 2020.0.51.

Наконец, CVE-2026-40991 в Spring REST Docs - это внедрение внешних XML-сущностей (XXE) при документировании недоверенного XML-контента. Если разработчик использует spring-restdocs-webtestclient или spring-restdocs-restassured для документирования удалённого API, контролируемого злоумышленником, то при следующем запуске тестов, генерирующих документацию, может произойти XXE-атака. Патчи выпущены для версий 2.0.9, 3.0.6 и 4.0.1.

Что делать разработчикам и администраторам

Все перечисленные уязвимости уже закрыты в соответствующих версиях продуктов. Команда Spring рекомендует немедленно обновить зависимые компоненты до указанных фиксированных версий. Для коммерческих лицензий также доступны исправления. Поскольку экосистема Spring широко используется в корпоративной разработке, любая из этих уязвимостей может стать вектором атаки на веб-приложения, внутренние сервисы или системы аутентификации. Особое внимание стоит уделить CVE-2026-41720 (пустой пароль в LDAP) и CVE-2026-41842 (отказ в обслуживании через версионированные ресурсы), так как они имеют высокий или средний уровень опасности и сравнительно легко эксплуатабельны.

Для минимизации рисков до установки патчей можно ограничить доступ к уязвимым функциям: например, отключить следование редиректам в Reactor Netty, если это возможно, или ограничить приём multipart-запросов в WebFlux. Однако полная защита достигается только после обновления библиотек. Администраторам следует также проверить настройки LDAP-серверов на предмет разрешения неаутентифицированных подключений и, при необходимости, заблокировать такие попытки на уровне конфигурации каталога.

В целом июньское обновление Spring стало одним из самых масштабных за последнее время. Одиннадцать уязвимостей охватывают практически все популярные компоненты фреймворка и затрагивают миллионы приложений по всему миру. Задержка с установкой патчей может привести к утечкам данных, простою сервисов и компрометации учётных записей пользователей. Поэтому специалистам по информационной безопасности и разработчикам стоит включить эти обновления в ближайший цикл релизов.

Ссылки

Комментарии: 0