21 октября 2026 года злоумышленники скомпрометировали конвейер выпуска LiteLLM и опубликовали вредоносный пакет LiteLLM v1.107.0 на PyPI, а также образы Docker. Вредоносная версия похищала секреты и могла загружать удалённый код, фактически превращая заражённую среду в средство удалённого доступа. Атака началась примерно в 4:00 утра по тихоокеанскому времени.

Пользователи могли пострадать, если устанавливали неприкреплённую к конкретной версии LiteLLM через pip с 11:39 до 13:23 UTC или использовали образы Docker с тегами
Кража секретов запускалась через файл
Вредоносный пакет также задействовал
По словам принадлежащей Google компании Wiz, до удаления репозитория GitHub примерно в 13:30 UTC файл содержал только начальные тестовые значения. Исследователи Wiz Бенджамин Рид и Рами Маккарти отметили, что одновременное применение
LiteLLM уже переносила релизы в закрытый репозиторий, делала теги выпусков Docker неизменяемыми и подписывала образы. Но 19 октября 2026 года права на публикацию временно расширили: двум инженерам нужно было выпускать ежедневные исправления ошибок для клиентов. По словам компании, у атакующего оказалось три набора учётных данных GitHub CLI разработчиков; один из них позволял запускать GitHub Actions. Использовав токен владельца организации LiteLLM, злоумышленник отключил защиту веток, принудительно отправил изменения и запустил скомпрометированный workflow, указав похожий репозиторий
Компания подозревает, что GitHub CLI OAuth-токены могли попасть в журналы внутреннего экземпляра LiteLLM, доступного из публичного интернета. Расследование выявило ситуации, когда Claude Code мог помещать такой токен в тело ответа; если тело записывалось в логи, секрет становился доступен через них. В развёртывании также обнаружили «неожиданную учётную запись с безобидным именем». LiteLLM считает, что злоумышленник мог проникнуть в этот экземпляр, получить токены и использовать их для атаки на выпуск. Пока неизвестно, почему сервис оказался публично доступен и как именно его взломали; компания допускает связь с недавно устранённой уязвимостью.
Wiz сообщила о последующем использовании похищенных учётных данных. В небольшом числе сред злоумышленник перечислял ресурсы IAM командами
Приём с
Пользователям, которые могли установить v1.107.0, рекомендовано удалить пакет, изолировать затронутые машины, проверить наличие
Генеральный директор Berri AI Криш Дхолакия заявил, что первоочередная задача компании — защитить клиентов и не допустить повторения атаки; расследование причин продолжается, а планы по укреплению конвейера выпуска обещаны позднее. Endor Labs рекомендовала искать артефакты заражённой версии, изолировать хосты, менять ключи и проверять сетевые журналы. Исследователь компании Пейтон Кеннеди отметил, что атака затронула упаковку, а прикладной код LiteLLM остался неизменным. По его словам, строка

Изображение носит иллюстративный характер
Пользователи могли пострадать, если устанавливали неприкреплённую к конкретной версии LiteLLM через pip с 11:39 до 13:23 UTC или использовали образы Docker с тегами
v1.107.0, latest, main-latest и main-stable с 11:46 до 14:20 UTC. Эти теги затронули Docker Hub и GHCR. LiteLLM сообщила, что удалила v1.107.0 в течение трёх часов после выпуска; клиенты Enterprise, скачивавшие образы из частного реестра компании, по её данным, не пострадали. Кража секретов запускалась через файл
cook.pth: при старте Python он предписывал импортировать cook. Скрипт cook.py расшифровывал собственный код и запускал процедуру privcollect, которая искала системные данные, учётные сведения браузеров и инструментов разработчика, облачные ключи и секреты ИИ-сервисов. Собранное отправлялось HTTP-запросом на litellm[.]dev/healthcheck. Вредоносный пакет также задействовал
sitecustomize.py, который, согласно анализу, запускался при старте Python в Linux и macOS. Код обращался к GitHub-репозиторию github[.]com/letters9813 за файлом domain.txt. Если ответ был подходящим, он скачивал и запускал вторую стадию с адреса <domain>/codepy. Исследователь Aikido Ильяс Макари описал фоновый процесс, который устанавливал блокировку /tmp/remote_code_loader.lock, а затем каждый час получал актуальный адрес командного сервера из raw[.]githubusercontent[.]com/letters9813/pythonclient-test/main/domain[.]txt и запускал Python-код по адресу https://{domain}/codepy. По словам принадлежащей Google компании Wiz, до удаления репозитория GitHub примерно в 13:30 UTC файл содержал только начальные тестовые значения. Исследователи Wiz Бенджамин Рид и Рами Маккарти отметили, что одновременное применение
.pth и sitecustomize.py, по-видимому, впервые задокументировано в реальной атаке. LiteLLM уже переносила релизы в закрытый репозиторий, делала теги выпусков Docker неизменяемыми и подписывала образы. Но 19 октября 2026 года права на публикацию временно расширили: двум инженерам нужно было выпускать ежедневные исправления ошибок для клиентов. По словам компании, у атакующего оказалось три набора учётных данных GitHub CLI разработчиков; один из них позволял запускать GitHub Actions. Использовав токен владельца организации LiteLLM, злоумышленник отключил защиту веток, принудительно отправил изменения и запустил скомпрометированный workflow, указав похожий репозиторий
Berri-AI/litellm вместо настоящего BerriAI/litellm. В результате вредоносные артефакты подписали и опубликовали. Компания подозревает, что GitHub CLI OAuth-токены могли попасть в журналы внутреннего экземпляра LiteLLM, доступного из публичного интернета. Расследование выявило ситуации, когда Claude Code мог помещать такой токен в тело ответа; если тело записывалось в логи, секрет становился доступен через них. В развёртывании также обнаружили «неожиданную учётную запись с безобидным именем». LiteLLM считает, что злоумышленник мог проникнуть в этот экземпляр, получить токены и использовать их для атаки на выпуск. Пока неизвестно, почему сервис оказался публично доступен и как именно его взломали; компания допускает связь с недавно устранённой уязвимостью.
Wiz сообщила о последующем использовании похищенных учётных данных. В небольшом числе сред злоумышленник перечислял ресурсы IAM командами
ListRoles, ListUsers и ListAccessKeys, а также выполнял более широкую разведку через ListAccounts и DescribeTrails. В исходных данных время активности указано неясно: «about 4.m. and 5:01 p.m. UTC». Приведены адреса 168.100.8[.]57 и неполный 165.227.201[.]...; недостающие сведения неизвестны. Приём с
.pth напоминает атаку марта 2026 года, приписанную TeamPCP. Однако Socket сообщил The Hacker News, что доказательств связи недостаточно: различаются встроенные открытые RSA-ключи, способы вывода данных и поведение бэкдора. Нельзя исключить, что действовал тот же оператор с другими инструментами, но подтверждений этому нет. Связь нынешнего инцидента с учётными данными, похищенными в марте, также не установлена. Пользователям, которые могли установить v1.107.0, рекомендовано удалить пакет, изолировать затронутые машины, проверить наличие
cook.pth, cook.py и sitecustomize.py, заблокировать litellm[.]dev/healthcheck и сменить все секреты, доступные заражённой среде. Следует проверить, запускался ли /codepy, изучить сетевые журналы и пересобрать затронутые системы. Контейнеры безопаснее закреплять по digest, а не по изменяемому тегу. Исследователь JFrog Гай Королевски предупредил: компрометация сборки может позволить атакующему протолкнуть вредоносный код дальше по цепочке поставок. Он посоветовал проверять конкретный wheel и версии до включения в сборку; если v1.107.0 запускалась, нужно сменить все доступные ей учётные данные и пересобрать среду. Генеральный директор Berri AI Криш Дхолакия заявил, что первоочередная задача компании — защитить клиентов и не допустить повторения атаки; расследование причин продолжается, а планы по укреплению конвейера выпуска обещаны позднее. Endor Labs рекомендовала искать артефакты заражённой версии, изолировать хосты, менять ключи и проверять сетевые журналы. Исследователь компании Пейтон Кеннеди отметил, что атака затронула упаковку, а прикладной код LiteLLM остался неизменным. По его словам, строка
data = "cook" в конфигурации сборки Maturin добавила в каталог Python-библиотеки три файла: cook.pth, cook.py и sitecustomize.py. Python обрабатывает .pth и импортирует sitecustomize при запуске, поэтому вредоносный код мог выполняться каждый раз, когда запускался Python, даже если приложение не использовало LiteLLM.