Добро пожаловать на Craft‑Bukkit

Всё о Minecraft серверах: гайды, команды, скачивание сборок и полезные советы для администраторов и игроков.

Уязвимость CVE-2022-42889: Text4Shell — как обработка текста могла взломать сервер

wergio 25.07.2026 15:04 6
Text4Shell (CVE-2022-42889): как уязвимость в Apache Commons Text угрожала плагинам Minecraft.

Введение: третья волна Java-уязвимостей

В октябре 2022 года была обнаружена уязвимость CVE-2022-42889, известная как Text4Shell. Она затрагивала библиотеку Apache Commons Text — ещё одну популярную Java-библиотеку, используемую многими плагинами Minecraft для обработки строк. Уязвимость получила рейтинг 9.8 и позволяла удалённо выполнить код через подстановку интерполированных строк.

Как работала Text4Shell

Apache Commons Text используется для продвинутой обработки строк: интерполяция переменных, форматирование, экранирование. Функция StringLookup позволяла подставлять значения из различных источников (переменные окружения, Java-свойства, URL).

Злоумышленник мог передать строку вида ${script:javascript:java.lang.Runtime.getRuntime().exec('rm -rf /')} в любое поле, которое обрабатывалось уязвимой версией Commons Text. При интерполяции строка выполнялась как скрипт.

Были ли серверы Minecraft уязвимы?

Прямых подтверждённых случаев массовой эксплуатации на серверах Minecraft зафиксировано не было, так как Commons Text не так широко использовалась, как Log4j. Однако многие плагины для работы с текстом (форматирование чата, книги, таблички) могли использовать эту библиотеку. Потенциально уязвимы были плагины, которые:

  • Обрабатывают пользовательский ввод через Commons Text.
  • Используют функции интерполяции строк.
  • Имеют функцию «eval» или «execute» в текстовых полях.

Как защититься

  • Обновить Apache Commons Text до версии 1.10.0+.
  • Обновить все плагины до последних версий.
  • Не использовать интерполяцию строк с пользовательским вводом.

💡 Совет профи

Text4Shell, как и Log4Shell, эксплуатировала функцию подстановки строк. Общий принцип защиты: НИКОГДА не позволяйте пользовательскому вводу интерпретироваться как код. Все строки, полученные от игроков (чат, названия предметов, книги, таблички), должны рассматриваться как ДАННЫЕ, а не как ИНСТРУКЦИИ.
← К списку статей

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

⏳ Все комментарии проходят модерацию

🔒 Войдите, чтобы оставить комментарий

😊 Пока нет комментариев. Будьте первым!