Запускаєш pip install litellm, йдеш варити каву, повертаєшся до терміналу. Все виглядає нормально. Твої SSH-ключі — цифрові майстер-паролі до серверів — уже летять комусь на пошту.
24 березня 2026 року саме це і сталося.
Що трапилось
LiteLLM — найпопулярніший open-source проксі для LLM. Універсальний перекладач, який дозволяє твоєму коду спілкуватися з будь-якою AI-моделлю (Claude, GPT, Gemini) через єдиний інтерфейс. Приблизно 3,4 мільйона завантажень на день. Якщо ти працюєш з AI на Python — ти майже напевно його чіпав.
Зловмисник під ім'ям TeamPCP залив дві отруєні версії — 1.82.7 та 1.82.8 — напряму на PyPI (Python Package Index — магазин додатків, звідки Python-бібліотеки встановлюються). Малварь збирала SSH-ключі, хмарні креденшали, API-токени та змінні середовища. Потім намагалася розповзтися по Kubernetes-кластерах — тих мережах контейнерів, на яких тримається більшість хмарної інфраструктури.
Найгидкіше: версія 1.82.8 використовувала .pth-файл. У Python .pth-файли виконуються автоматично при старті інтерпретатора. Не коли ти імпортуєш бібліотеку. Коли запускається будь-який Python-процес. Автокомпліт у твоїй IDE? Скомпрометований. Запускаєш pip install something-else? Скомпрометований. Малварі не потрібен був ні твій дозвіл, ні твоя увага.
Як вони пролізли
TeamPCP не зламували LiteLLM напряму. Вони грали довшу гру.
Спочатку вони заклали бекдор в Aqua Security Trivy — популярний open-source сканер безпеки — отруївши один з його GitHub Actions (автоматизовані скрипти, які крутяться в CI/CD пайплайнах — конвеєрах, що збирають і деплоять код). Скомпрометований Trivy працював усередині CI-пайплайну самого LiteLLM, робив те, що завжди робив: сканував на вразливості. Тільки тепер ще тихенько крав PyPI-креденшали.
З цими вкраденими кредами TeamPCP залив шкідливі пакети напряму на PyPI. Без pull request. Без code review. Без жодних червоних прапорців. Інструмент безпеки став вектором атаки.
Datadog Security Labs відстежили це до координованої багатотижневої кампанії, яка також зачепила сканер KICS від Checkmarx. TeamPCP перетворили на зброю саме ті інструменти, якими компанії захищаються.
Трьох годин вистачило
Шкідливі версії пролежали на PyPI приблизно три години — між 10:39 UTC та 16:00 UTC 24 березня. Ком'юніті зреагувало, PyPI поставив пакет на карантин. Компрометація не зачепила LiteLLM Cloud чи офіційні Docker-образи — вони використовують запіновані версії.
Але три години при 3,4 мільйона завантажень на день — це тисячі інсталяцій. Будь-хто, хто запустив pip install --upgrade litellm у тому вікні — або мав автоматизований пайплайн, який зробив це за нього — отримав подарунок.
Що робити, якщо тебе зачепило
Якщо ти встановив або оновив LiteLLM 24 березня між 10:39–16:00 UTC, вітаю — твої вихідні скасовані:
- Ротуй все. SSH-ключі, хмарні токени, API-ключі, паролі від баз даних — все, що жило у твоїх змінних середовища
- Перевір lateral movement. Особливо всередині Kubernetes-кластерів. Малварь активно намагалася розповзтися
- Запінь версію 1.82.6 або раніше, поки пил остаточно не осяде
- Проведи аудит CI/CD. Якщо використовуєш Trivy або Checkmarx KICS, переконайся, що твої GitHub Actions не підмінили
Патерн, від якого має бути страшно
Ця атака особлива не через LiteLLM. Вона особлива через метод. TeamPCP не знайшли zero-day. Не зафішили мейнтейнера. Вони скомпрометували сканер безпеки — інструмент, який існує саме для запобігання таким речам — і використали його як відмичку до всього, що далі по ланцюжку.
Supply chain атаки — коли хакери б'ють по інструментах і бібліотеках, від яких залежить твій код, замість того щоб атакувати тебе напряму — стають дедалі винахідливішими. Ланцюжки довіри в open source довгі та крихкі. Ти довіряєш LiteLLM. LiteLLM довіряє Trivy. Trivy довіряє GitHub Action. GitHub Action довіряє... кому саме?
Пінь залежності. Перевіряй чексуми. Не оновлюй автоматично на проді. І може, стався до свого сканера безпеки з тією ж підозрою, що й до будь-якої іншої залежності — бо, як з'ясувалося, він цього заслуговує.
→ LiteLLM Security Update · Snyk Analysis · Datadog Security Labs · BleepingComputer





