Массовое обновление Spring: двенадцать уязвимостей от удаленного выполнения кода до обхода аутентификации

Spring

Компания VMware (разработчик Spring) опубликовала серию бюллетеней безопасности, закрывающих двенадцать уязвимостей в нескольких подпроектах экосистемы Spring. Проблемы затронули Spring Boot, Spring Integration, Spring Web Flow, Spring Web Services и Spring Statemachine. Наибольшую опасность представляют уязвимости, позволяющие удаленно выполнить произвольный код или осуществить подделку межсерверных запросов (SSRF). Вендор уже выпустил исправления как в открытом коде, так и в коммерческой лицензии.

Детали уязвимостей

Две уязвимости в Spring Web Flow (CVE-2026-40985 и CVE-2026-40986) оценены как средние по степени опасности. Первая связана с возможностью внедрения вредоносных выражений Unified EL в приложениях, использующих WebFlowELExpressionParser. При определенных условиях атакующий может выполнить произвольные Java-выражения на сервере. Вторая проблема заключается в том, что JavaScript-компонент RemotingHandler возвращает тело ошибочного ответа как HTML, даже если заголовок Content-Type не является text/html. Это может привести к XSS-атаке в браузере пользователя, если сервер отражает введенные злоумышленником данные. Обе уязвимости затрагивают версии Spring Web Flow 2.5.x, 3.0.x и 4.0.x. Исправления выпущены для версий 2.5.2, 3.0.2 и 4.0.1 (или соответствующие коммерческие патчи).

Критическая уязвимость CVE-2026-40987 обнаружена в Spring Integration. Вредоносный или скомпрометированный FTP, SFTP или SMB-сервер может записать произвольные файлы на клиентскую файловую систему, обходя настроенную локальную директорию. Атакующий контролирует содержимое записываемых файлов. Проблема затрагивает все поддерживаемые ветки Spring Integration - от 5.5.x до 7.0.x. Исправления выпущены в версиях 5.5.21, 6.3.15, 6.4.12, 6.5.9 (OSS) и 7.0.5 (OSS), а также соответствующих коммерческих патчах. Исследователи M0untainShley, SharlongWen и daehyuh ответственны за обнаружение этой уязвимости.

Средняя по опасности уязвимость CVE-2026-40992 в Spring Boot касается автоматической настройки почтовых клиентов. При использовании стандартных настроек JavaMail для отправки электронной почты по протоколам SMTP, IMAP или POP3 не выполняется проверка имени хоста (hostname verification) при установке SSL-соединения. Злоумышленник, находящийся в той же сети, может провести атаку "человек посередине" и перехватить или подменить почтовый трафик. Приложения, установившие свойство spring.mail.properties.mail.smtp.ssl.checkserveridentity=true, не подвержены риску. Уязвимы Spring Boot 3.4.x до 3.4.17, 3.5.x до 3.5.15 и 4.0.x до 4.0.7.

Группа уязвимостей в Spring Web Services (CVE-2026-40994, CVE-2026-40995, CVE-2026-40996, CVE-2026-40997, CVE-2026-40998, CVE-2026-40999, CVE-2026-41000) охватывает широкий спектр проблем - от обхода механизмов безопасности до раскрытия информации и SSRF. Наиболее опасными можно считать CVE-2026-40994 (высокая опасность), где Wss4jSecurityInterceptor по умолчанию отключает проверку соответствия WS-I Basic Security Profile, что позволяет принимать сообщения, нарушающие правила безопасности. CVE-2026-40999 (высокая опасность) позволяет инициировать подделку межсерверных запросов (SSRF) через непроверенные адреса ReplyTo или FaultTo в заголовках WS-Addressing. Это дает злоумышленнику возможность обращаться к внутренним ресурсам, например, к метаданным облачных провайдеров. CVE-2026-40998 (высокая опасность) - это XXE-уязвимость в XPath-обработчике Jaxp13XPathTemplate при разборе XML, контролируемого атакующим. Уязвимые версии Spring Web Services: 3.1.x до 3.1.9, 4.0.x до 4.0.19, 4.1.x до 4.1.4 и 5.0.x до 5.0.2.

Отдельного внимания заслуживает уязвимость CVE-2026-41862 (высокая опасность) в Spring Statemachine. Механизм сериализации Kryo, используемый в бэкендах JPA, MongoDB, Redis и ZooKeeper, десериализует данные состояния без проверки разрешенных классов. Это может привести к удаленному выполнению кода - классическая проблема десериализации ненадежных данных. Исправление включает принудительную регистрацию классов (registrationRequired=true) и использование белого списка. Обновление требует изменения кода: разработчики должны явно регистрировать свои классы состояний и событий. Также изменен формат хранения, и ранее сохраненные контексты становятся нечитаемыми.

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

Ссылки

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