Исследователи безопасности из компании SafeDep обнаружили серьезную угрозу в экосистеме Python. В репозитории PyPI была опубликована скомпрометированная версия библиотеки LiteLLM под номером 1.107.0. Этот пакет содержал скрытый бэкдор и функционал для кражи учетных данных, что ставит под удар разработчиков, использующих данный инструмент в своих проектах.
Как работает угроза
Вредоносный код активируется автоматически при запуске любого процесса Python на хосте, даже если сама библиотека LiteLLM не была импортирована. Это происходит благодаря внедрению специальных файлов в директорию site-packages. Злоумышленники использовали хитрую схему: в конфигурационный файл сборки maturin была добавлена команда, копирующая скрытую папку с вредоносным содержимым в финальную версию пакета.
После установки на компьютер жертвы, программа начинает сбор данных в фоновом режиме. Список целей впечатляет своим разнообразием:
- Пароли из популярных браузеров (Chromium, Firefox).
- Ключи SSH и история командных оболочек (bash, zsh, PowerShell).
- Облачные учетные данные (AWS, Azure, Google Cloud, Docker, Kubernetes).
- Файлы с секретами разработки (.pem, .key, .pfx) и токены CI/CD систем.
- Данные инструментов для работы с ИИ, включая Cursor, Claude Desktop, VS Code и другие.
Последствия и рекомендации
Анализ показал, что официальный исходный код на GitHub не содержит этих вредоносных вставок. Вероятно, злоумышленники получили доступ к частному конвейеру сборки (CI/CD) компании BerriAI, что позволило им сформировать и подписать «отравленные» файлы. При этом версии 1.106.2, а также релиз-кандидаты 1.107.0rc1 и rc2 остаются безопасными.
На данный момент вредоносная версия удалена из PyPI. Разработчикам, которые могли установить версию 1.107.0, рекомендуется немедленно обновить библиотеку, провести аудит безопасности своих систем и сменить все потенциально скомпрометированные ключи доступа, токены и пароли, которые могли находиться в памяти или файловой системе компьютера.
Источник: safedep.io