В Java-фреймворке Spring обнаружили критическую 0-day уязвимость - «Новости»

  • 10:30, 03-апр-2022
  • Новости / Изображения / Самоучитель CSS / Видео уроки / Вёрстка / Преимущества стилей / Отступы и поля
  • Erickson
  • 0

В популярном фреймворке была обнаружена критическая, уязвимость, получившая имя Spring4Shell. Баг допускает удаленное выполнение произвольного кода без аутентификации.


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


Свежий баг в Spring Cloud Function, CVE-2022-22963, был обнаружен ранее на этой неделе, а вчера в сети ненадолго появился PoC-эксплоит, который вскоре был удален из открытого доступа. Так как многие ИБ-исследователи успели загрузить опубликованный код, теперь компании предупреждают, что уязвимость действительно вызывает серьезные опасения.


Проблема Spring4Shell связана с небезопасной десериализацией переданных аргументов. Хотя изначально предполагалось, что проблема влияет на все приложения Spring, работающие на Java 9 или более поздних версии, в итоге оказалось, что существуют определенные ограничения, которые должны быть соблюдены, чтобы приложение Spring стало уязвимым.


Аналитик CERT/CC Уилл Дорманн объясняет, что приложение должно использовать Spring Beans, Spring Parameter Binding, а также Spring Parameter Binding должно быть настроено для использования не базовых типов параметров, таких как POJO.


ИБ-компания Praetorian тоже подтвердила, что проявления ошибки связаны с определенными конфигурациями.


«Для эксплуатации требуется эндпоинт с включенным DataBinder (например, POST-запрос, который автоматически декодирует данные из тела запроса), и все сильно зависит от контейнера сервлетов для приложения, — рассказывают эксперты в блоге. — Например, когда Spring развернут на Apache Tomcat, доступен WebAppClassLoader, что позволяет злоумышленнику вызывать геттеры и сеттеры, чтобы в итоге записать вредоносный JSP-файл на диск.


Но если Spring развернут с использованием Embedded Tomcat Servlet Container, загрузчик классов — это LaunchedURLClassLoader, доступ к которому ограничен.


В некоторых конфигурациях эксплуатация этой проблемы предельно проста, поскольку для этого нужно лишь  отправить специально подготовленный POST-запрос уязвимой системе. Однако использование [проблемы] в других конфигурациях потребует проведения дополнительных исследований, чтобы подобрать пейлоады, которые будут эффективны».


Так как для уязвимости пока нет патча, эксперты Praetorian описывают способ смягчения проблемы Spring4Shell: путем запрещения передачи определенных паттернов Spring Core DataBinder.


К сожалению, при всех ограничениях, о которых пишут исследователи, сообщается, что проблему Spring4Shell уже используют хакеры. Так, об атаках с применением свежего бага пишет издание Bleeping Computer, ссылаясь на собственные источники.


В популярном фреймворке была обнаружена критическая, уязвимость, получившая имя Spring4Shell. Баг допускает удаленное выполнение произвольного кода без аутентификации. Spring — популярный фреймворк, позволяющий разработчикам быстро и легко создавать приложения Java с функциями энтерпрайз уровня. Такие приложения можно развернуть на серверах, к примеру, Apache Tomcat, в виде автономных пакетов со всеми необходимыми зависимостями. Свежий баг в Spring Cloud Function, CVE-2022-22963, был обнаружен ранее на этой неделе, а вчера в сети ненадолго появился PoC-эксплоит, который вскоре был удален из открытого доступа. Так как многие ИБ-исследователи успели загрузить опубликованный код, теперь компании предупреждают, что уязвимость действительно вызывает серьезные опасения. Проблема Spring4Shell связана с небезопасной десериализацией переданных аргументов. Хотя изначально предполагалось, что проблема влияет на все приложения Spring, работающие на Java 9 или более поздних версии, в итоге оказалось, что существуют определенные ограничения, которые должны быть соблюдены, чтобы приложение Spring стало уязвимым. Аналитик CERT/CC Уилл Дорманн объясняет, что приложение должно использовать Spring Beans, Spring Parameter Binding, а также Spring Parameter Binding должно быть настроено для использования не базовых типов параметров, таких как POJO. ИБ-компания Praetorian тоже подтвердила, что проявления ошибки связаны с определенными конфигурациями. «Для эксплуатации требуется эндпоинт с включенным DataBinder (например, POST-запрос, который автоматически декодирует данные из тела запроса), и все сильно зависит от контейнера сервлетов для приложения, — рассказывают эксперты в блоге. — Например, когда Spring развернут на Apache Tomcat, доступен WebAppClassLoader, что позволяет злоумышленнику вызывать геттеры и сеттеры, чтобы в итоге записать вредоносный JSP-файл на диск. Но если Spring развернут с использованием Embedded Tomcat Servlet Container, загрузчик классов — это LaunchedURLClassLoader, доступ к которому ограничен. В некоторых конфигурациях эксплуатация этой проблемы предельно проста, поскольку для этого нужно лишь отправить специально подготовленный POST-запрос уязвимой системе. Однако использование _

Другие новости


Рекомендуем

Комментарии (0)

Комментарии для сайта Cackle



Уважаемый посетитель нашего сайта!
Комментарии к данной записи отсутсвуют. Вы можете стать первым!