AI-розробницька спільнота 24 березня зазнала серйозної кіберінциденту. Широко використовуваний для підключення до великих мовних моделей Python-пакет LiteLLM, версії 1.82.8, був зловмисно вмонтований шкідливим кодом. Достатньо виконати
pip install litellm
щоб потенційно викликати витік SSH-ключів, сертифікатів AWS/GCP/Azure, налаштувань Kubernetes, Git-автентифікації, змінних середовища (усіх API-ключів), історії Shell, криптовалютних гаманців, SSL-приватних ключів, секретів CI/CD, паролів баз даних тощо на віддалений сервер.
Обсяг поширення: будь-який проект, що залежить від LiteLLM, під загрозою
LiteLLM має понад 97 мільйонів завантажень на місяць, що робить його досить масштабним. Ще більш тривожно, що атаки через ланцюг поставок мають набагато ширший вплив, ніж просто безпосередні користувачі — будь-який пакет, що залежить від LiteLLM, може бути уражений. Наприклад,
pip install dspy
(залежить від litellm>=1.64.0) також може бути заражений, і це стосується інших великих проектів.
За аналізом Андрея Карпатьї у X, зловмисна версія була опублікована менш ніж за годину, і її швидке виявлення стало випадковістю: розробник Callum McMahon у Cursor використав MCP-плагін, який імпортує LiteLLM як транзитивну залежність. При встановленні версії 1.82.8 комп’ютер одразу вичерпував пам’ять і зависав. Якби не баг у коді зловмисників, ця атака могла тривати кілька тижнів непоміченою.
Обліковий запис CEO LiteLLM ймовірно був зламаний, що свідчить про масштабну атаку
Фахівці з безпеки повідомили, що облікові записи LiteLLM на GitHub і PyPI ймовірно були зламані. Це не ізольований випадок — одна й та сама група атак TeamPCP одночасно проникла у великі розширення VSCode і Cursor, встановивши віддалений доступний троян ZOMBI, а також приховані VNC-сервери та SOCKS-проксі. За повідомленнями, було викрадено понад 500 000 пар сертифікатів, що торкнулися кількох великих компаній.
Негайні дії: перевірка версій, пониження
Заражена версія — 1.82.8. Якщо цей пакет вже встановлений, слід вважати всі ключі скомпрометованими і негайно їх змінити:
Карпатьї: настав час переосмислити культуру залежностей
Карпатьї у зв’язку з цим висловив глибше роздуми: традиційне програмування розглядає залежності як «цеглини для побудови піраміди» — ефективний інструмент. Однак атаки через ланцюг поставок роблять цю ідею дедалі більш ризикованою. Він вважає, що слід передусім використовувати LLM для «безпосереднього витягання» (yoink) потрібних функцій, а не підключати цілі зовнішні пакети — особливо коли функціонал досить простий і його можна реалізувати самостійно.
Ця подія також змусила розробницьку спільноту усвідомити, що з поширенням автоматичного виконання команд через AI-агенти
pip install
людський контроль швидко зникає, і захист на рівні пакетів стає не просто додатковою опцією, а базовою вимогою.
Ця стаття «LiteLLM PyPI ланцюг поставок: 97 мільйонів завантажень на місяць — шкідливий код у AI-пакеті, витік SSH-ключів і API-ключів» вперше з’явилася на Chain News ABMedia.