Новости
Фейковое собеседование и вредоносный npm-пакет: WaterPlum похитила $11 млн из криптокошельков
Северокорейская группировка заражала разработчиков через «тестовые задания» — npm-пакеты с бэкдорами.
21 октября 2026 года в официальный пакет PyPI и Docker-образы популярного AI-прокси LiteLLM ненадолго попала версия 1.107.0 с вредоносным кодом. Атакующие использовали украденные GitHub CLI OAuth-токены трёх разработчиков проекта, чтобы одобрить релиз через легитимный пайплайн. Вредоносный код запускался при каждом старте интерпретатора Python и читал на диске файлы с облачными и AI-учётными данными — от service account Kubernetes до токенов Claude, ChatGPT и Gemini.

Коротко: 21 октября 2026 года атакующие скомпрометировали аккаунты трёх инженеров LiteLLM через украденные GitHub CLI OAuth-токены и опубликовали вредоносную версию 1.107.0 в PyPI (11:39–13:23 UTC) и Docker Hub (11:46–14:20 UTC). Код прятался в стартовых файлах Python и запускался при каждом запуске интерпретатора — даже если приложение само LiteLLM не импортировало. Он читал файлы service account Kubernetes, конфиг Docker, ключи AWS/Google Cloud, SSH/GPG-ключи и файлы авторизации Claude Code, Codex, Gemini CLI и Cursor, отправляя их на сервер атакующих. Это уже второй подобный инцидент с LiteLLM за год — в марте 2026-м похожая атака привела к утечке данных около 2500 компаний.
LiteLLM — популярная open-source библиотека и прокси-сервер, который даёт разработчикам единый API для вызова моделей OpenAI, Anthropic, Google и десятков других провайдеров. Проект активно используют AI-стартапы и внутренние команды крупных компаний для маршрутизации запросов к разным LLM.
21 октября 2026 года в 04:00 PST в PyPI и официальные Docker-образы LiteLLM была опубликована версия 1.107.0, содержащая скомпилированный вредоносный модуль. Пакет находился в открытом доступе около двух часов: в PyPI — с 11:39 до 13:23 UTC, в Docker-реестрах — с 11:46 до 14:20 UTC, после чего команда LiteLLM удалила скомпрометированные релизы.
Это не классическая атака на цепочку поставок через подставной клон пакета — злоумышленники получили доступ к самому легитимному релизному процессу проекта:
Такие кампании, как npm flooding или фейковые npm-пакеты WaterPlum, полагаются на то, что жертва сама установит вредоносный сторонний пакет. Здесь же вредоносный код оказался внутри официального, подписанного релиза хорошо известного проекта — пользователи, которые годами доверяли LiteLLM, получили заражённую версию через обычное pip install --upgrade litellm или docker pull.
Ключевая техническая деталь инцидента — вредоносный код был размещён в стартовых файлах Python, которые интерпретатор исполняет автоматически при каждом запуске. Это значит, что заражение активировалось даже в тех приложениях, которые LiteLLM вообще не импортировали — достаточно было, чтобы заражённый пакет присутствовал в окружении.
После запуска стилер собирал и пытался выгрузить на сервер атакующих содержимое следующих категорий файлов:
Такой набор целей — это не случайный сбор данных, а прицельная охота за файлами, которые дают доступ к инфраструктуре целиком: от облачного аккаунта компании до API-ключей для AI-сервисов. Если вы разбираете, какие расширения файлов потенциально опасны для хранения в открытом виде, см. наш материал «Карта опасных расширений файлов».
Это уже не первая компрометация цепочки поставок LiteLLM в 2026 году. В марте 2026-го похожая атака на релизный пайплайн привела к публикации вредоносных версий 1.82.7 и 1.82.8 и утечке архива объёмом около 153 ГБ, который, по оценкам исследователей, затронул данные примерно 2500 корпоративных доменов, включая крупные технологические и промышленные компании.
Повторный инцидент показывает системную проблему: даже после первой атаки защита релизного пайплайна (хранение и ротация OAuth-токенов разработчиков, мониторинг внутренних сервисов, открытых в интернет) осталась недостаточной, чтобы предотвратить вторую компрометацию тем же вектором — украденными токенами доступа.
Команда LiteLLM подтвердила, что все версии, кроме скомпрометированной 1.107.0, безопасны, а заражённые релизы удалены из PyPI и Docker-реестров. Если в вашем окружении в период с 21 по 22 октября 2026 года устанавливалась или обновлялась эта версия, рекомендуется:
Если в вашей инфраструктуре автоматические обновления Python-зависимостей или Docker-образов идут без карантина и ручной проверки версии — такие как этот инцидент заражают прод за считаные часы ещё до того, как сообщество успевает отреагировать.