Spring4Shell: экстренный патч для критической 0-day в Spring Framework

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

Проблема получила идентификатор CVE-2022-22965 и высокий уровень опасности. Она затрагивает Spring Framework версий с 5.3.0 по 5.3.17, с 5.2.0 по 5.2.19, а также более старые версии, которые уже не поддерживаются. Пользователям рекомендуют как можно скорее обновиться до 5.3.18 или новее и до 5.2.20 или новее.

Spring Framework — это Java-фреймворк, обеспечивающий инфраструктурную поддержку при разработке веб-приложений, поэтому масштаб потенциально уязвимого парка велик.

Кому реально грозит атака

По словам Россена Стоянчева из команды Spring, уязвимость затрагивает приложения Spring MVC (model–view–controller) и Spring WebFlux, работающие на JDK (Java Development Kit) версии 9 и выше. Но одного этого условия недостаточно.

«Конкретный эксплойт требует, чтобы приложение работало на Tomcat в виде WAR-развёртывания. Если приложение развёрнуто как исполняемый JAR-файл Spring Boot, то есть по умолчанию, оно не уязвимо для этого эксплойта», — уточнил Стоянчев.

Исследователи Энтони Уимс и Даллас Каман из компании Praetorian добавили, что для эксплуатации нужна конечная точка с включённым DataBinder — например, POST-запрос, который автоматически декодирует данные из тела запроса. При этом успех сильно зависит от сервлет-контейнера конкретного приложения.

Тем не менее в команде Spring предупредили, что «природа уязвимости носит более общий характер»: не исключены и другие способы её эксплуатации, которые пока не выявлены. Иными словами, ограничиваться проверкой только описанного сценария не стоит.

Гонка с публичным эксплойтом

Патч вышел не на пустом месте. 30 марта 2022 года некий китайскоязычный исследователь ненадолго опубликовал на GitHub коммит с готовым PoC-кодом (proof-of-concept) для CVE-2022-22965 — позже публикацию удалили. Но за такое короткое окно код вполне мог разойтись по рукам, что и объясняет срочность выпуска исправления.

Команда Spring, входящая в структуру VMware, отметила, что впервые получила сведения об уязвимости «поздно вечером во вторник, около полуночи по GMT, от codeplutos и meizjm3i из AntGroup FG Security Lab». Отдельно поблагодарили за сообщение о проблеме и компанию Praetorian.

Итог простой: если у вас есть Spring-приложения на затронутых версиях, развёрнутые классическим способом на Tomcat, обновление стоит воспринимать как срочное, а не плановое.

Источник: The Hacker News.