В релиз LiteLLM 1.107.0 попал вредоносный код
В LiteLLM 1.107.0 обнаружили вредоносный пакет из цепочки поставок PyPI. В проанализированном wheel-файле для macOS x86-64 с SHA-256 7598727f209d717041db37f7dca271d3a7d328a279890e0e1d55375729aeb86d нашли три внедрённых файла, хеши которых записаны в манифесте RECORD. Полезной нагрузки нет в соответствующем теге исходного кода, что указывает на компрометацию процесса сборки или публикации. По имеющимся данным, все семь wheel-файлов LiteLLM 1.107.0 содержат одинаковые внедрённые компоненты.
Запуск вредоносного кода и сбор данных
Вредоносный файл .pth импортирует cook.py. При каждом запуске Python этот файл декодирует и выполняет сборщик учётных данных, встроенный в виде данных Base64, сжатых zlib. Для запуска сборщика не требуется импортировать LiteLLM. Второй механизм автоматического выполнения кода обеспечивает файл sitecustomize.py.
Сборщик нацелен на учётные данные браузеров, файлы cookie и историю браузеров, ключи SSH, GPG и TLS, учётные данные облачных сервисов и систем CI/CD, токены менеджеров пакетов, файлы .env, секреты Kubernetes и Docker, учётные данные инструментов ИИ, переменные окружения, данные об окружении процессов, учётные данные баз данных и метаданные облачных инстансов. Кроме того, он собирает сведения о хосте, пользователе, сети, среде выполнения и конфигурации.
Собранные данные сериализуются в JSON и шифруются с помощью AES-256-CBC. Ключ AES шифруется встроенным открытым ключом RSA. В полученные файлы записываются метаданные шифрования, вектор инициализации, зашифрованные данные и зашифрованный ключ AES. Архив отправляется на www.litellm.dev/healthcheck, а домен www.litellm.dev жёстко задан как получатель. К индикаторам компрометации относятся заголовки X-Token и X-SHA256, а также файл-маркер /tmp/.pc_once_72129118c59f5636c0bb.
Загрузчик удалённого кода и меры реагирования
Пакет также запускает постоянный загрузчик удалённого кода. Он создаёт файл /tmp/remote_code_loader.lock, выполняет разветвление процесса (fork) и отсоединение, подавляет вывод, извлекает домен из репозитория GitHub letters9813/pythonclient-test и каждый час выполняет Python-код, загруженный с {domain}/codepy.
Авторы отчёта рекомендуют изолировать и пересоздать затронутые среды. Все учётные данные, доступные процессам Python, включая учётные данные облачных сервисов, систем контроля версий, менеджеров пакетов, CI/CD, баз данных и браузеров, а также криптографические ключи, следует заменить, используя доверенные системы.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



