Популярный инструмент для автоматизации задач внезапно начал «жечь» процессоры по всему миру. Владельцы серверов жаловались на загрузку ЦП под 100%, а причина оказалась банальной и неприятной: злоумышленники массово устанавливали скрытый майнер через уязвимости удалённого выполнения команд.
В центре инцидента оказался проект Qinglong – панель для планирования задач, которую часто разворачивают на своих серверах. Платформа поддерживает сценарии на Python, JavaScript и других языках и особенно популярна среди китайских разработчиков. Многие запускают её на облачных виртуальных машинах или домашних серверах и открывают доступ через интернет.
Первые тревожные сигналы появились 7–8 февраля 2026 года. Пользователи начали замечать странный процесс с именем «.fullgc», который загружал процессор на 85–100%. Позже стало ясно, что через панель управления злоумышленники разворачивают майнер криптовалюты. При этом англоязычное сообщество почти не обратило внимания на происходящее – обсуждение шло в основном на китайских форумах и в GitHub.
Корень проблемы вскрылся только в конце февраля. В версии 2.20.1 и более ранних нашли сразу две уязвимости обхода аутентификации, получившие идентификаторы CVE-2026-3965 и CVE-2026-4047. Обе позволяли выполнять команды на сервере без входа в систему.
Первая ошибка возникла из-за некорректной обработки адресов в серверной части на Express.js. Приложение переписывает запросы, и злоумышленник мог воспользоваться этим, чтобы сбросить учётные данные администратора одной командой. После такого сброса панель полностью переходила под контроль атакующего.
Вторая уязвимость оказалась ещё проще. Проверка доступа учитывала регистр символов в адресе, а сам сервер – нет. Достаточно было изменить написание части URL, чтобы обойти защиту и сразу отправить команду на выполнение. Пароль при этом вообще не требовался.
Через уязвимость злоумышленник менял конфигурационный файл, добавляя вредоносный сценарий. Тот скачивал бинарный файл с удалённого сервера, сохранял его под скрытым именем «.fullgc», запускал в фоне и добавлял механизм автозапуска. Название выбрали не случайно – в среде Java термин «Full GC» часто ассоциируется с нагрузкой на процессор, поэтому администратор мог списать проблему на обычные процессы.
Сообщения о заражениях приходили от пользователей с разными конфигурациями, включая серверы за обратными прокси и с включённым шифрованием. Облачные провайдеры, например Alibaba Cloud, начали помечать такие системы как участвующие в майнинге. В одном случае злоумышленники через ту же панель получили доступ к системе мониторинга и увидели сразу сотни машин.
Попытки закрыть дыру сначала пошли по неверному пути. В проекте предложили блокировать подозрительные команды вроде curl и wget в заданиях. Такой подход не решает проблему, потому что уязвимость находится глубже – в механизме проверки доступа. В итоге разработчик сосредоточился на исправлении именно этой логики, что и стало правильным решением. Владельцам систем стоит проверить свои серверы на следы «.fullgc», обновить версии и пересоздать контейнеры из чистых образов. Одного удаления контейнера недостаточно – вредоносный код сохраняется в подключённых томах.
Ситуация напоминает, что любой сервис с доступом из интернета становится целью. Даже нишевые инструменты вроде планировщиков задач привлекают злоумышленников, если позволяют выполнять команды. При этом майнинг криптовалюты – один из самых простых способов монетизации взлома: нагрузка заметна, но источник часто ищут слишком долго.
