Не успел мир отойти от громкой уязвимости Apache Log4j2 (CVE-2021-44228), как в сети появились сообщения о новой, не менее опасной 0-day уязвимости. В Spring Framework для Java обнаружено сразу несколько уязвимостей «нулевого дня», которые позволяют удаленно выполнять произвольный код (RCE).
29 марта 2022 года с китайского аккаунта в Twitter был опубликован набор твитов (ныне удаленных), в которых были показаны скриншоты нового POC-эксплойта 0-day в популярной Java-библиотеке Spring Core.
На момент написания этой новости, уязвимость находится в статусе wild, то есть не имеет номера CVE, связанного с этой уязвимостью, а пользователи в сети называют ее Spring4Shell или или как SpringShell.
Учитывая распространённость Spring Framework, специалисты справедливо опасаются грандиозного погрома в ближайшие недели-месяцы. Важно учитывать два момента:
Перечислим, что известно на этот момент:
RequestMapping
и параметры POJO
(Plain Old Java Object).
С технической стороны идея эксплоита сводится к отправке запроса с параметрами class.module.classLoader.resources.context.parent.pipeline.first.*
, обработка которых при использовании WebappClassLoaderBase
приводит к обращению к классу AccessLogValve
.
В свою очередь этот класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл кода, подготовленного атакующим. Далее, созданный файл становится доступным для прямых запросов извне.
Результатом такой эксплуатации будет созданный шелл-файл на jsp (shell.jsp
), при обращении к которому можно удаленно выполнять произвольные команды на сервере. Например, используя curl
, вызов можно оформить так:
# curl http://example.com/shell.jsp?cmd=whoami
Согласно сообщению Praetorian, подтверждающему наличие RCE в Spring Core, рекомендуемый в настоящее время подход заключается в исправлении DataBinder
путем добавления черного списка уязвимых шаблонов полей, необходимых для эксплуатации. Если вы используете Spring Core, то на данный момент это единственное известное средство исправления данной атаки.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…