Пайплайн релізів LiteLLM знову зламано: інфостилер поширювався як v1.107.0 на PyPI та в Docker Hub
Вранці 21 жовтня 2026 року на PyPI та в офіційних Docker-образах проєкту з'явився шкідливий реліз LiteLLM. Версія 1.107.0 несла стилер облікових даних і завантажувач віддаленого коду замість того, що написали мейнтейнери. Згідно з власним security-оновленням LiteLLM, скомпрометовано було сам пайплайн релізів — з використанням витоклих облікових даних GitHub з акаунтів розробників проєкту. Шкідливі wheel-пакети провели на PyPI менш як дві години, а заражені Docker-теги дожили до вечора. В екосистемі автоматичних збірок і зафіксованих залежностей цього більш ніж достатньо, щоб наслідки виявилися серйозними.
Чистий тег, отруєна збірка
Розкриття читається як чекліст того, наскільки крихка довіра до пакетів. LiteLLM повідомляє, що зловмисник дістав OAuth-токени GitHub CLI з трьох акаунтів розробників — судячи з усього, вони були записані в логах відкритого в інтернет внутрішнього деплою LiteLLM; один з акаунтів належав власнику організації на GitHub. З цими даними було знято захист гілок, форсовано внесено зміну в workflow, а пайплайн спрямовано на репозиторій-двійник: Berri-AI/litellm — в одному дефісі від справжнього BerriAI/litellm. Офіційний git-тег v1.107.0 лишився чистим; шкідливі артефакти збирали з підробки.«Ця версія містила скомпільоване шкідливе програмне забезпечення, яке викрадає облікові дані та завантажує інструменти віддаленого виконання коду». — security-оновлення LiteLLM, 21 жовтня 2026 рокуВиявлення щонайменше було швидким. Як повідомляє BleepingComputer, фірми безпеки, зокрема Socket і Endor Labs, позначили реліз приблизно за шість хвилин, а PyPI вилучив пакети до 13:23 UTC; Docker Hub зачистили по обіді. LiteLLM каже, що клієнти приватного корпоративного реєстру не постраждали. Але й шість хвилин мають значення, коли пакет збирає близько 92 млн завантажень на місяць, а серед його користувачів значаться NVIDIA, Netflix і Okta — за даними BleepingComputer.
За чим полює стилер
Механіка корисного навантаження пояснює категоричність рекомендацій. Wheel-пакети скидали три файли — cook.pth, cook.py та sitecustomize.py — у каталог site-packages Python. Python виконує такі файли під час кожного запуску інтерпретатора, тож шкідливий код виконувався будь-яким Python-процесом на машині, навіть якщо LiteLLM жодного разу не імпортувався. Технічний розбір Datadog Security Labs додає: видалення пакета litellm не прибирає ці файли — їх доводиться видаляти вручну. Аналіз інциденту від Kodem документує, заради чого стилер створювався:- Хмарні та інфраструктурні облікові дані: ключі AWS, Azure і GCP, включно з токенами метаданих інстансів, плюс секрети Kubernetes, Docker і Terraform
- ШІ-специфічний матеріал: API-ключі провайдерів LLM, облікові дані з бази проксі LiteLLM і файли сесій ШІ-інструментів для програмування
- Токени розробників і реєстрів: облікові дані Git, токени GitHub, npm і PyPI, ключі SSH, GPG і TLS
- Локальні секрети: файли .env, змінні середовища, історії shell і баз даних
- Дані браузера: збережені паролі, cookie та записи автозаповнення
Другий інцидент із пайплайном за рік
Це другий скомпрометований реліз LiteLLM у 2026 році. У березні зловмисник, відомий як TeamPCP, вбудував бекдор у версії 1.82.7 і 1.82.8, зламавши сканер Trivy в CI/CD-пайплайні проєкту та викравши токен PyPI. Datadog пов'язує дві кампанії лише ціллю: зв'язку між виконавцями не встановлено. Неприємна сама схема — шлюз у центрі тисяч ШІ-стеків, що зберігає ключі провайдерів і хмарні облікові дані, за вісім місяців двічі отримав зіпсований канал дистрибуції.Перша година за ранбуком
Kodem супроводив індикатори ранбуком реагування на першу годину, а порада LiteLLM так само категорична. Спільний стрижень:- Заблокувати litellm 1.107.0 на пакетному проксі, перестати розгортати плаваючі теги на кшталт latest і зафіксувати останній чистий реліз 1.106.2 за хешем — образи за дайджестом
- Не запускати python і pip на уражених хостах до очищення: кожен запуск інтерпретатора знову виконує навантаження
- Ізолювати хости й контейнери, потім вручну видалити cook.pth, cook.py, sitecustomize.py та їхні скомпільовані .pyc-файли
- Ротувати з чистої машини: хмарні ролі, ключі провайдерів із бази проксі, master- і virtual-ключі LiteLLM, пароль бази даних, токени реєстрів і GitHub
- Перевірити хмарні журнали аудиту на виклики GetCallerIdentity та використання облікових даних із неочікуваної інфраструктури від 11:39 UTC 21 жовтня










